Merge branch 'master' of bitbucket.org:colosa/processmaker

This commit is contained in:
Freddy Daniel Rojas Valda
2014-10-13 16:53:21 -04:00
95 changed files with 3368 additions and 679 deletions

View File

@@ -118,7 +118,18 @@ function change_hash($command, $opts)
$response = new stdclass();
$response->workspace = $workspace;
$response->hash = $hash;
$workspace->changeHashPassword($workspace->name, $response);
if (!defined("SYS_SYS")) {
define("SYS_SYS", $workspace->name);
}
if (!defined("PATH_DATA_SITE")) {
define("PATH_DATA_SITE", PATH_DATA . "sites/" . SYS_SYS . "/");
}
$_SESSION['__sw__'] = '';
if (!$workspace->changeHashPassword($workspace->name, $response)) {
CLI::logging(pakeColor::colorize("This command cannot be used because your license does not include it.", "ERROR") . "\n");
$workspace->close();
die;
}
$workspace->close();
CLI::logging(pakeColor::colorize("Changed...", "ERROR") . "\n");
} catch (Exception $e) {

View File

@@ -196,17 +196,27 @@ function listFiles($dir) {
}
function run_unify_database($args)
{
$workspaces = get_workspaces_from_args($args);
{
$workspaces = array();
if (sizeof($args) > 2) {
$filename = array_pop($args);
foreach ($args as $arg) {
$workspaces[] = new workspaceTools($arg);
}
} else if (sizeof($args) > 0) {
$workspace = new workspaceTools($args[0]);
$workspaces[] = $workspace;
}
CLI::logging("UPGRADE", PROCESSMAKER_PATH . "upgrade.log");
CLI::logging("Checking workspaces...\n");
//setting flag to true to check into sysGeneric.php
$flag = G::isPMUnderUpdating(0);
//start to unify
$count = count($workspaces);
if ($count > 1) {
if(!Bootstrap::isLinuxOs()){
CLI::error("This is not a Linux enviroment, please especify workspace.\n");
@@ -214,34 +224,31 @@ function run_unify_database($args)
}
}
foreach ($workspaces as $workspace) {
if (! $workspace->workspaceExists()) {
echo "Workspace {$workspace->name} not found\n";
return false;
}
$ws = $workspace->name;
$sContent = file_get_contents (PATH_DB . $ws . PATH_SEP . 'db.php');
if (strpos($sContent, 'rb_')) {
$workspace->onedb = false;
} else {
$workspace->onedb = true;
}
}
$first = true;
$errors = false;
$countWorkspace = 0;
$buildCacheView = array_key_exists("buildACV", $args);
foreach ($workspaces as $workspace) {
try {
foreach ($workspaces as $workspace) {
try {
$countWorkspace++;
if (! $workspace->workspaceExists()) {
echo "Workspace {$workspace->name} not found\n";
return false;
}
$ws = $workspace->name;
$sContent = file_get_contents (PATH_DB . $ws . PATH_SEP . 'db.php');
if (strpos($sContent, 'rb_')) {
$workspace->onedb = false;
} else {
$workspace->onedb = true;
}
if ($workspace->onedb) {
CLI::logging("Workspace $workspace->name already one Database...\n");
CLI::logging("The \"$workspace->name\" workspace already using one database...\n");
} else {
//create destination path
$parentDirectory = PATH_DATA . "upgrade";
@@ -258,31 +265,36 @@ function run_unify_database($args)
CLI::logging( "Exporting rb and rp databases to a temporal location...\n" );
$metadata["databases"] = $workspace->exportDatabase( $tempDirectory,true );
$metadata["version"] = 1;
list ($dbHost, $dbUser, $dbPass) = @explode( SYSTEM_HASH, G::decrypt( HASH_INSTALLATION, SYSTEM_HASH ) );
$link = mysql_connect( $dbHost, $dbUser, $dbPass );
foreach ($metadata->databases as $db) {
$dbName = 'wf_'.$workspace->name;
CLI::logging( "+> Restoring {$db->name} to $dbName database\n" );
$restore = $workspace->executeSQLScript( $dbName, "$tempDirectory/{$db->name}.sql" );
CLI::logging( "+> Remove {$db->name} database\n" );
$sql = "DROP DATABASE IF EXISTS {$db->name};";
if (! @mysql_query( $sql )) {
throw new Exception( mysql_error() );
foreach ($metadata['databases'] as $db) {
$dbName = 'wf_'.$workspace->name;
CLI::logging( "+> Restoring {$db['name']} to $dbName database\n" );
$aParameters = array('dbHost'=>$dbHost,'dbUser'=>$dbUser,'dbPass'=>$dbPass);
$restore = $workspace->executeScript( $dbName, "$tempDirectory/{$db['name']}.sql", $aParameters);
if ($restore) {
CLI::logging( "+> Remove {$db['name']} database\n" );
$sql = "DROP DATABASE IF EXISTS {$db['name']};";
if (! @mysql_query( $sql )) {
throw new Exception( mysql_error() );
}
}
}
CLI::logging( "Removing temporary files\n" );
G::rm_dir( $tempDirectory );
$newDBNames = $workspace->resetDBInfo( $dbHost, true );
$newDBNames = $workspace->resetDBInfo( $dbHost, true, true );
CLI::logging( CLI::info( "Done restoring databases" ) . "\n" );
}
} catch (Exception $e) {
}
} catch (Exception $e) {
CLI::logging("Errors upgrading workspace " . CLI::info($workspace->name) . ": " . CLI::error($e->getMessage()) . "\n");
$errors = true;
}

View File

@@ -372,60 +372,64 @@ function run_drafts_clean($args, $opts) {
}
function run_workspace_backup($args, $opts) {
$workspaces = array();
if (sizeof($args) > 2) {
$filename = array_pop($args);
foreach ($args as $arg) {
$workspaces[] = new workspaceTools($arg);
$workspaces = array();
if (sizeof($args) > 2) {
$filename = array_pop($args);
foreach ($args as $arg) {
$workspaces[] = new workspaceTools($arg);
}
} else if (sizeof($args) > 0) {
$workspace = new workspaceTools($args[0]);
$workspaces[] = $workspace;
if (sizeof($args) == 2) {
$filename = $args[1];
} else {
$filename = "{$workspace->name}.tar";
}
} else {
throw new Exception("No workspace specified for backup");
}
} else if (sizeof($args) > 0) {
$workspace = new workspaceTools($args[0]);
$workspaces[] = $workspace;
if (sizeof($args) == 2)
$filename = $args[1];
else
$filename = "{$workspace->name}.tar";
} else {
throw new Exception("No workspace specified for backup");
}
foreach ($workspaces as $workspace)
if (!$workspace->workspaceExists())
throw new Exception("Workspace '{$workspace->name}' not found");
//If this is a relative path, put the file in the backups directory
if (strpos($filename, "/") === false && strpos($filename, '\\') === false){
$filename = PATH_DATA . "backups/$filename";
}
CLI::logging("Backing up to $filename\n");
$filesize = array_key_exists("filesize", $opts) ? $opts['filesize'] : -1;
if($filesize >= 0)
{
if(!Bootstrap::isLinuxOs()){
foreach ($workspaces as $workspace) {
if (!$workspace->workspaceExists()) {
throw new Exception("Workspace '{$workspace->name}' not found");
}
}
//If this is a relative path, put the file in the backups directory
if (strpos($filename, "/") === false && strpos($filename, '\\') === false){
$filename = PATH_DATA . "backups/$filename";
}
CLI::logging("Backing up to $filename\n");
$filesize = array_key_exists("filesize", $opts) ? $opts['filesize'] : -1;
if ($filesize >= 0) {
if (!Bootstrap::isLinuxOs()) {
CLI::error("This is not a Linux enviroment, cannot use this filesize [-s] feature.\n");
return;
}
$multipleBackup = new multipleFilesBackup ($filename,$filesize);//if filesize is 0 the default size will be took
//using new method
foreach ($workspaces as $workspace){
$multipleBackup->addToBackup($workspace);
}
$multipleBackup->letsBackup();
}
else
{
//ansient method to backup into one large file
$backup = workspaceTools::createBackup($filename);
}
$multipleBackup = new multipleFilesBackup ($filename,$filesize);//if filesize is 0 the default size will be took
//using new method
foreach ($workspaces as $workspace) {
$multipleBackup->addToBackup($workspace);
}
$multipleBackup->letsBackup();
} else {
//ansient method to backup into one large file
$backup = workspaceTools::createBackup($filename);
foreach ($workspaces as $workspace)
$workspace->backup($backup);
}
CLI::logging("\n");
workspaceTools::printSysInfo();
foreach ($workspaces as $workspace) {
foreach ($workspaces as $workspace) {
$workspace->backup($backup);
}
}
CLI::logging("\n");
$workspace->printMetadata(false);
}
workspaceTools::printSysInfo();
foreach ($workspaces as $workspace) {
CLI::logging("\n");
$workspace->printMetadata(false);
}
}
function run_workspace_restore($args, $opts) {

View File

@@ -18,7 +18,7 @@ class Applications
$sort = "APP_CACHE_VIEW.APP_NUMBER",
$category = null,
$configuration = true,
$paged = false
$paged = true
) {
$callback = isset($callback)? $callback : "stcCallback1001";
$dir = isset($dir)? $dir : "DESC";
@@ -443,10 +443,14 @@ class Applications
}
//Add sortable options
if ($sort != "") {
$sortBk = $sort;
if ($sortBk != "") {
$sort = "";
//Current delegation (*)
if (($action == "sent" || $action == "search" || $action == "simple_search" || $action == "to_revise" || $action == "to_reassign") && ($status != "TO_DO")) {
switch ($sort) {
switch ($sortBk) {
case "APP_CACHE_VIEW.APP_CURRENT_USER":
$sort = "USRCR_" . $conf->userNameFormatGetFirstFieldByUsersTable();
break;
@@ -455,10 +459,12 @@ class Applications
break;
}
}
if (isset( $oAppCache->confCasesList['PMTable'] ) && ! empty( $oAppCache->confCasesList['PMTable'] ) && $tableNameAux != '') {
$sortTable = explode(".", $sort);
$sortTable = explode(".", $sortBk);
$additionalTableUid = $oAppCache->confCasesList["PMTable"];
require_once 'classes/model/Fields.php';
$oCriteria = new Criteria('workflow');
@@ -489,6 +495,15 @@ class Applications
}
}
if ($sort == "") {
$sort = $sortBk;
if (!in_array($sortBk, $Criteria->getSelectColumns())) {
$sort = AppCacheViewPeer::APP_NUMBER; //DEFAULT VALUE
$dir = "DESC";
}
}
if ($dir == "DESC") {
$Criteria->addDescendingOrderByColumn($sort);
} else {

View File

@@ -33,6 +33,9 @@ class enterpriseClass extends PMPlugin
public function enterpriseSystemUpdate($data) //$data = $oData
{
if (count(glob(PATH_DATA_SITE . 'license/*.dat')) == 0) {
return;
}
require_once ("classes/model/Users.php");
$user = $data;
$criteria = new Criteria("workflow");

View File

@@ -115,6 +115,14 @@ class Groups
$oGrp->setGrpUid($GrpUid);
$oGrp->setUsrUid($UsrUid);
$oGrp->Save();
$oGrpwf = new Groupwf();
$grpName = $oGrpwf->loadByGroupUid($GrpUid);
$oUsr = new Users();
$usrName = $oUsr->load($UsrUid);
G::auditLog("AssignUserToGroup", "Assign user ". $usrName['USR_USERNAME'] ." (".$UsrUid.") to group ".$grpName['CON_VALUE']." (".$GrpUid.") ");
}
} catch (exception $oError) {
throw ($oError);

View File

@@ -0,0 +1,86 @@
<?php
class featuresDetail
{
public $featureName;
public $description = null;
public $enabled = false;
public $workspaces = null;
/**
* This function is the constructor of the featuresDetail class
*
* @param string $featureName
* @param string $name
* @param string $description
* @return void
*/
public function __construct ($featureName, $description = '')
{
$this->featureName = $featureName;
$this->description = $description;
}
}
class PMLicensedFeatures
{
private $featuresDetails = array ();
private $features = array ();
private static $instancefeature = null;
/**
* This function is the constructor of the PMLicensedFeatures class
* param
*
* @return void
*/
public function __construct ()
{
$criteria = new Criteria();
$criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_ID);
$criteria->add(AddonsManagerPeer::ADDON_TYPE, 'feature', Criteria::EQUAL);
$addons = AddonsManagerPeer::doSelect($criteria);
foreach ($addons as $addon) {
$this->features[] = $addon->getAddonId();
$detail = new featuresDetail($addon->getAddonNick(), $addon->getAddonDescription());
$this->featuresDetails[$addon->getAddonId()] = $detail;
}
}
/**
* This function is instancing to this class
* param
*
* @return object
*/
public static function getSingleton ()
{
if (self::$instancefeature == null) {
self::$instancefeature = new PMLicensedFeatures();
}
return self::$instancefeature;
}
public function verifyfeature ($featureName)
{
if (!class_exists("pmLicenseManager")) {
require_once ("classes" . PATH_SEP . "class.pmLicenseManager.php");
}
$licenseManager = &pmLicenseManager::getSingleton();
$_SESSION['__sw__'] = true;
$padl = new padl();
$value = $padl->_decrypt($featureName);
$enable = in_array($value[0], $licenseManager->licensedfeatures);
if (!isset($this->featuresDetails[$value[0]]) || !is_object($this->featuresDetails[$value[0]])) {
$this->featuresDetails[$value[0]] = new stdclass();
}
$this->featuresDetails[$value[0]]->enabled = $enable;
return $enable;
}
}

View File

@@ -260,7 +260,7 @@ class PMPluginRegistry
//register the default directory, later we can have more
$this->_aPluginDetails[$sNamespace]->enabled = true;
if (class_exists($detail->sClassName)) {
$oPlugin = new $detail->sClassName( $detail->sNamespace, $detail->sFilename );
$oPlugin = new $detail->sClassName( $detail->sNamespace, $detail->sFilename );
} else {
$oPlugin = $detail;
}
@@ -1513,5 +1513,88 @@ class PMPluginRegistry
{
return $this->_aCronFiles;
}
/**
* Update the plugin attributes in all workspaces
*
* @param string $pluginName Plugin name
*
* return void
*/
public function updatePluginAttributesInAllWorkspaces($pluginName)
{
try {
G::LoadClass("system");
G::LoadClass("wsTools");
//Set variables
$pluginFileName = $pluginName . ".php";
//Verify data
if (!file_exists(PATH_PLUGINS . $pluginFileName)) {
throw new Exception("Error: The plugin not exists");
}
//Update plugin attributes
require_once(PATH_PLUGINS . $pluginFileName);
$pmPluginRegistry = &PMPluginRegistry::getSingleton();
$pluginDetails = $pmPluginRegistry->getPluginDetails($pluginFileName);
if (isset($pluginDetails->aWorkspaces) && is_array($pluginDetails->aWorkspaces) && count($pluginDetails->aWorkspaces) > 0) {
$arrayWorkspace = array();
foreach (System::listWorkspaces() as $value) {
$workspaceTools = $value;
$arrayWorkspace[] = $workspaceTools->name;
}
$arrayWorkspaceAux = array_diff($arrayWorkspace, $pluginDetails->aWorkspaces); //Workspaces to update
$strWorkspaceNoWritable = "";
$arrayWorkspace = array();
foreach ($arrayWorkspaceAux as $value) {
$workspace = $value;
$workspacePathDataSite = PATH_DATA . "sites" . PATH_SEP . $workspace . PATH_SEP;
if (file_exists($workspacePathDataSite . "plugin.singleton")) {
$pmPluginRegistry = PMPluginRegistry::loadSingleton($workspacePathDataSite . "plugin.singleton");
if (isset($pmPluginRegistry->_aPluginDetails[$pluginName])) {
if (!is_writable($workspacePathDataSite . "plugin.singleton")) {
$strWorkspaceNoWritable .= (($strWorkspaceNoWritable != "")? ", " : "") . $workspace;
}
$arrayWorkspace[] = $workspace;
}
}
}
//Verify data
if ($strWorkspaceNoWritable != "") {
throw new Exception("Error: The workspaces \"$strWorkspaceNoWritable\" has problems of permissions of write in file \"plugin.singleton\", solve this problem");
}
//Update plugin attributes
foreach ($arrayWorkspace as $value) {
$workspace = $value;
$workspacePathDataSite = PATH_DATA . "sites" . PATH_SEP . $workspace . PATH_SEP;
$pmPluginRegistry = PMPluginRegistry::loadSingleton($workspacePathDataSite . "plugin.singleton");
$pmPluginRegistry->disablePlugin($pluginName);
file_put_contents($workspacePathDataSite . "plugin.singleton", $pmPluginRegistry->serializeInstance());
}
}
} catch (Exception $e) {
throw $e;
}
}
}

View File

@@ -19,7 +19,7 @@ class pmLicenseManager
//to do: this files probably needs to be in core, since they are GPL2
//include_once (PATH_PLUGINS . 'enterprise' . PATH_SEP . 'classes' . PATH_SEP . 'class.license.lib.php');
//include_once (PATH_PLUGINS . 'enterprise' . PATH_SEP . 'classes' . PATH_SEP . 'class.license.app.php');
require_once PATH_CORE . 'classes' . PATH_SEP . 'class.license.lib.php';
require_once PATH_CORE . 'classes' . PATH_SEP . 'class.license.app.php';
@@ -53,6 +53,9 @@ class pmLicenseManager
);
$this->result = $results['RESULT'];
$this->features = array();
$this->licensedfeatures = array();
$this->licensedfeaturesList = array();
if (in_array($this->result, $validStatus)) {
$this->serial="3ptta7Xko2prrptrZnSd356aqmPXvMrayNPFj6CLdaR1pWtrW6qPw9jV0OHjxrDGu8LVxtmSm9nP5kR23HRpdZWccpeui+bKkK<6B>DoqCt2Kqgpq6Vg37s";
$info['FIRST_NAME'] = $results['DATA']['FIRST_NAME'];
@@ -64,7 +67,9 @@ class pmLicenseManager
$this->plan = isset($results ['DATA']['PLAN'])?$results ['DATA']['PLAN']:"";
$this->id = $results ['ID'];
$this->expireIn = $this->getExpireIn ();
$this->features = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_PLUGIN'])?$results ['DATA']['CUSTOMER_PLUGIN']:$this->getActiveFeatures():array();
$this->features = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_PLUGIN'])? $results ['DATA']['CUSTOMER_PLUGIN'] : $this->getActiveFeatures() : array();
$this->licensedfeatures = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_LICENSED_FEATURES'])? $results ['DATA']['CUSTOMER_LICENSED_FEATURES'] : array() : array();
$this->licensedfeaturesList = isset($results ['DATA']['LICENSED_FEATURES_LIST'])? $results ['DATA']['LICENSED_FEATURES_LIST'] : null;
$this->status = $this->getCurrentLicenseStatus ();
if (isset ( $results ['LIC'] )) {
@@ -108,7 +113,7 @@ class pmLicenseManager
$this->activateFeatures ();
}
public function &getSingleton()
public static function getSingleton()
{
if (self::$instance == null) {
self::$instance = new pmLicenseManager ();
@@ -352,7 +357,9 @@ class pmLicenseManager
public function installLicense($path, $redirect = true)
{
$application = new license_application ( $path, false, true, false, true, true );
$results = $application->validate ( false, false, "", "", "80", true );
//if the result is ok then it is saved into DB
$res = $results ['RESULT'];
if (( $res != 'OK') && ($res != 'EXPIRED' ) && ($res != 'TMINUS') ) {
@@ -496,6 +503,9 @@ class pmLicenseManager
public function getActiveFeatures()
{
if (file_exists ( PATH_PLUGINS . 'enterprise/data/default' )) {
return array();
}
return unserialize(G::decrypt($this->serial, file_get_contents(PATH_PLUGINS . 'enterprise/data/default')));
}
}

View File

@@ -1164,6 +1164,7 @@ class processMap
$c++;
$oGroup = new Groupwf();
$aFields = $oGroup->load($aRow['USR_UID']);
$aRow['GRP_TITLE'] = ($aRow['GRP_TITLE']=="")? $aFields['GRP_TITLE'] : $aRow['GRP_TITLE'];
if ($aFields['GRP_STATUS'] == 'ACTIVE') {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
@@ -1259,7 +1260,10 @@ class processMap
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
$oCriteria->add(
$oCriteria->getNewCriterion(UsersPeer::USR_STATUS, "ACTIVE", Criteria::EQUAL)->addOr(
$oCriteria->getNewCriterion(UsersPeer::USR_STATUS, "VACATION", Criteria::EQUAL))
);
$oCriteria->add(UsersPeer::USR_UID, $aUIDS2, Criteria::NOT_IN);
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);

View File

@@ -39,6 +39,7 @@ class serverConf
private $_aProperties = array();
private $_aHeartbeatConfig = array();
private $_aWSapces = array();
private $_auditLogConfig = array();
private $aWSinfo = array();
private $pluginsA = array();
private $errors = array();
@@ -75,7 +76,7 @@ class serverConf
*
* @return object
*/
public function &getSingleton()
public static function &getSingleton()
{
if (self::$instance == null) {
self::$instance = new serverConf();
@@ -465,10 +466,55 @@ class serverConf
}
}
/**
* With this is possible to save a property that will be saved in the properties
* array of this class.
*
* @param string $propertyName
* @param string $propertyValue
* @param string $workspace
*/
public function setAuditLogProperty($propertyName, $propertyValue, $workspace)
{
$this->_auditLogConfig[$workspace][$propertyName] = $propertyValue;
$this->saveSingleton();
}
/**
* To unset a defined property.
* If it doesn't exist then it does nothing.
*
* @param string $propertyName
* @param string $workspace
* @return void
*/
public function unsetAuditLogProperty($propertyName, $workspace)
{
if (isset($this->_auditLogConfig[$workspace][$propertyName])) {
unset($this->_auditLogConfig[$workspace][$propertyName]);
}
$this->saveSingleton();
}
/**
* Returns the value of a defined property.
* If it doesn't exist then returns null
*
* @param string $propertyName
* @return string/null
*/
public function getAuditLogProperty($propertyName, $workspace)
{
if (isset($this->_auditLogConfig[$workspace][$propertyName])) {
return $this->_auditLogConfig[$workspace][$propertyName];
} else {
return null;
}
}
public function isRtl($lang = SYS_LANG)
{
$lang = substr($lang, 0, 2);
return in_array($lang, $this->rtlLang);
}
}

View File

@@ -920,7 +920,8 @@ class wsBase
if (!class_exists('System')) {
G::LoadClass('system');
}
$aSetup = !empty($config) ? $config : System::getEmailConfiguration();
$licensedFeatures = & PMLicensedFeatures::getSingleton();
$aSetup = (!empty($config) && $licensedFeatures->verifyfeature('nKaNTNuT1MzK0RsMEtXTnYzR09ucHF2WGNuS0hRdDBBak42WXJhNVVOOG1INEVoaU1EaTllbjBBeEJNeG9wRVJ6NmxQelhyVTBvdThzPQ==') ) ? $config : System::getEmailConfiguration();
$oSpool = new spoolRun();

View File

@@ -233,12 +233,13 @@ class workspaceTools
$value = isset($matches['value']) ? $matches['value'] : $matches[3];
if($this->onedb){
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'wf_', 'DB_RBAC_USER' => 'wf_', 'DB_REPORT_NAME' => 'wf_', 'DB_REPORT_USER' => 'wf_');
$dbInfo = $this->getDBInfo();
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'wf_', 'DB_RBAC_USER' => 'wf_', 'DB_REPORT_NAME' => 'wf_', 'DB_REPORT_USER' => 'wf_');
if (array_search($key, array('DB_PASS', 'DB_RBAC_PASS', 'DB_REPORT_PASS'))) {
$value = $this->dbInfo['DB_PASS'];
$value = $dbInfo['DB_PASS'];
}
} else{
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'rb_', 'DB_RBAC_USER' => 'rb_', 'DB_REPORT_NAME' => 'rp_', 'DB_REPORT_USER' => 'rp_');
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'rb_', 'DB_RBAC_USER' => 'rb_', 'DB_REPORT_NAME' => 'rp_', 'DB_REPORT_USER' => 'rp_');
}
if (array_search($key, array('DB_HOST', 'DB_RBAC_HOST', 'DB_REPORT_HOST')) !== false) {
@@ -272,7 +273,7 @@ class workspaceTools
* @param bool $resetDBNames if true, also reset all database names
* @return array contains the new database names as values
*/
public function resetDBInfo($newHost, $resetDBNames = true)
public function resetDBInfo($newHost, $resetDBNames = true, $onedb = false)
{
if (count(explode(":", $newHost)) < 2) {
$newHost .= ':3306';
@@ -280,7 +281,7 @@ class workspaceTools
$this->newHost = $newHost;
$this->resetDBNames = $resetDBNames;
$this->resetDBDiff = array();
$this->onedb = false;
$this->onedb = $onedb;
if (!$this->workspaceExists()) {
throw new Exception("Could not find db.php in the workspace");
@@ -289,14 +290,7 @@ class workspaceTools
if ($sDbFile === false) {
throw new Exception("Could not read database information from db.php");
} else {
if (strpos($sDbFile, 'rb_')) {
$this->onedb = false;
} else {
$this->onedb = true;
}
}
/* Match all defines in the config file. Check updateDBCallback to know what
* keys are changed and what groups are matched.
* This regular expression will match any "define ('<key>', '<value>');"
@@ -434,7 +428,7 @@ class workspaceTools
* @return database connection
*/
private function getDatabase($rbac = false)
{
{
if (isset($this->db) && $this->db->isConnected() && $rbac == false) {
return $this->db;
}
@@ -847,6 +841,7 @@ class workspaceTools
if (!empty($changes['tablesToAdd'])) {
CLI::logging("-> " . count($changes['tablesToAdd']) . " tables to add\n");
}
foreach ($changes['tablesToAdd'] as $sTable => $aColumns) {
$oDataBase->executeQuery($oDataBase->generateCreateTableSQL($sTable, $aColumns));
if (isset($changes['tablesToAdd'][$sTable]['INDEXES'])) {
@@ -859,6 +854,7 @@ class workspaceTools
if (!empty($changes['tablesToAlter'])) {
CLI::logging("-> " . count($changes['tablesToAlter']) . " tables to alter\n");
}
foreach ($changes['tablesToAlter'] as $sTable => $aActions) {
foreach ($aActions as $sAction => $aAction) {
foreach ($aAction as $sColumn => $vData) {
@@ -974,6 +970,9 @@ class workspaceTools
$dbNetView = new NET($this->dbHost);
$dbNetView->loginDbServer($this->dbUser, $this->dbPass);
try {
if (!defined('DB_ADAPTER')) {
require_once($this->dbPath);
}
$sMySQLVersion = $dbNetView->getDbServerVersion('mysql');
} catch (Exception $oException) {
$sMySQLVersion = 'Unknown';
@@ -1033,10 +1032,14 @@ class workspaceTools
$wfDsn = $fields['DB_ADAPTER'] . '://' . $fields['DB_USER'] . ':' . $fields['DB_PASS'] . '@' . $fields['DB_HOST'] . '/' . $fields['DB_NAME'];
if ($fields['DB_NAME'] == $fields['DB_RBAC_NAME']) {
$info = array('Workspace Name' => $fields['WORKSPACE_NAME'], 'Workflow Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_USER'], $fields['DB_PASS'], $fields['DB_HOST'], $fields['DB_NAME']), 'MySql Version' => $fields['DATABASE']);
} else {
$info = array('Workspace Name' => $fields['WORKSPACE_NAME'],
//'Available Databases' => $fields['AVAILABLE_DB'],
'Workflow Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_USER'], $fields['DB_PASS'], $fields['DB_HOST'], $fields['DB_NAME']), 'RBAC Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_RBAC_USER'], $fields['DB_RBAC_PASS'], $fields['DB_RBAC_HOST'], $fields['DB_RBAC_NAME']), 'Report Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_REPORT_USER'], $fields['DB_REPORT_PASS'], $fields['DB_REPORT_HOST'], $fields['DB_REPORT_NAME']), 'MySql Version' => $fields['DATABASE']
);
}
foreach ($info as $k => $v) {
if (is_numeric($k)) {
@@ -1071,15 +1074,18 @@ class workspaceTools
public function exportDatabase($path, $onedb = false)
{
$dbInfo = $this->getDBInfo();
if ($onedb) {
$databases = array("rb", "rp");
} else if ($dbInfo['DB_NAME'] == $dbInfo['DB_RBAC_NAME']) {
$databases = array("wf");
} else {
$databases = array("wf", "rp", "rb");
}
$dbNames = array();
foreach ($databases as $db) {
foreach ($databases as $db) {
$dbInfo = $this->getDBCredentials($db);
$oDbMaintainer = new DataBaseMaintenance($dbInfo["host"], $dbInfo["user"], $dbInfo["pass"]);
CLI::logging("Saving database {$dbInfo["name"]}\n");
@@ -1140,7 +1146,7 @@ class workspaceTools
* @param bool $compress specifies wheter the backup is compressed or not
*/
public function backup($backupFile, $compress = true)
{
{
/* $filename can be a string, in which case it's used as the filename of
* the backup, or it can be a previously created tar, which allows for
* multiple workspaces in one backup.
@@ -1315,6 +1321,12 @@ class workspaceTools
}
}
public function executeScript($database, $filename, $parameters)
{
$this->executeSQLScript($database, $filename, $parameters);
return true;
}
static public function restoreLegacy($directory)
{
throw new Exception("Use gulliver to restore backups from old versions");
@@ -1435,6 +1447,13 @@ class workspaceTools
throw new Exception("Backup version {$metadata->version} not supported");
}
$backupWorkspace = $metadata->WORKSPACE_NAME;
if (strpos($metadata->DB_RBAC_NAME, 'rb_') === false) {
$onedb = true;
} else {
$onedb = false;
}
if (isset($dstWorkspace)) {
$workspaceName = $dstWorkspace;
$createWorkspace = true;
@@ -1449,7 +1468,7 @@ class workspaceTools
CLI::logging("> Restoring " . CLI::info($backupWorkspace) . " to " . CLI::info($workspaceName) . "\n");
}
$workspace = new workspaceTools($workspaceName);
if ($workspace->workspaceExists()) {
if ($overwrite) {
@@ -1492,24 +1511,34 @@ class workspaceTools
throw new Exception('Could not connect to system database: ' . mysql_error());
}
$newDBNames = $workspace->resetDBInfo($dbHost, $createWorkspace);
$dbName = '';
$newDBNames = $workspace->resetDBInfo($dbHost, $createWorkspace, $onedb);
foreach ($metadata->databases as $db) {
$dbName = $newDBNames[$db->name];
CLI::logging("+> Restoring database {$db->name} to $dbName\n");
$workspace->executeSQLScript($dbName, "$tempDirectory/{$db->name}.sql",$aParameters);
$workspace->createDBUser($dbName, $db->pass, "localhost", $dbName);
$workspace->createDBUser($dbName, $db->pass, "%", $dbName);
if ($dbName != $newDBNames[$db->name]) {
$dbName = $newDBNames[$db->name];
CLI::logging("+> Restoring database {$db->name} to $dbName\n");
$workspace->executeSQLScript($dbName, "$tempDirectory/{$db->name}.sql",$aParameters);
$workspace->createDBUser($dbName, $db->pass, "localhost", $dbName);
$workspace->createDBUser($dbName, $db->pass, "%", $dbName);
}
}
$version = explode('-', $metadata->PM_VERSION);
$versionOld = ( isset($version[0])) ? $version[0] : '';
CLI::logging(CLI::info("$versionOld < $versionPresent") . "\n");
$start = microtime(true);
CLI::logging("> Verify enterprise old...\n");
$workspace->verifyEnterprise($workspaceName);
$stop = microtime(true);
$final = $stop - $start;
CLI::logging("<*> Verify took $final seconds.\n");
if ( $versionOld < $versionPresent || strpos($versionPresent, "Branch")) {
$start = microtime(true);
CLI::logging("> Updating database...\n");
$workspace->upgradeDatabase();
$workspace->upgradeDatabase($onedb);
$stop = microtime(true);
$final = $stop - $start;
CLI::logging("<*> Database Upgrade Process took $final seconds.\n");
@@ -1639,7 +1668,13 @@ class workspaceTools
{
$this->initPropel( true );
G::LoadClass("enterprise");
enterpriseClass::setHashPassword($response);
$licensedFeatures = & PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('95OY24wcXpEMzIyRmlNSnF0STNFSHJzMG9wYTJKekpLNmY2ZmRCeGtuZk5oUDloaUNhUGVjTDJBPT0=')) {
enterpriseClass::setHashPassword($response);
} else {
return false;
}
return true;
}
public function verifyEnterprise ($workspace)

View File

@@ -200,6 +200,8 @@ class AdditionalTables extends BaseAdditionalTables
'APP_UID' => '',
'SHD_DATE' => date('Y-m-d H:i:s')));
*/
G::auditLog("CreatePmtable", "PM Table Name: ".$aData['ADD_TAB_NAME']);
return $aData['ADD_TAB_UID'];
} else {
$sMessage = '';
@@ -226,6 +228,7 @@ class AdditionalTables extends BaseAdditionalTables
$oConnection->begin();
$iResult = $oAdditionalTables->save();
$oConnection->commit();
G::auditLog("UpdatePmtable", "PM Table Name: ".$aData['ADD_TAB_NAME']." PM Table ID: (".$aData['ADD_TAB_UID'].") ");
} else {
$sMessage = '';
$aValidationFailures = $oAdditionalTables->getValidationFailures();

View File

@@ -64,7 +64,115 @@ class AddonsStore extends BaseAddonsStore
return false;
}
public static function addonList()
public static function addonList($type = 'plugin')
{
$result = array();
AddonsStore::checkLicenseStore();
$licenseManager = &pmLicenseManager::getSingleton(); //Getting the licenseManager
$result["store_errors"] = array();
list($stores, $errors) = AddonsStore::updateAll(false, $type);
foreach ($errors as $store_id => $store_error) {
$result["store_errors"][] = array("id" => $store_id, "msg" => $store_error);
}
$result["addons"] = array();
$result["errors"] = array();
$criteria = new Criteria();
$criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_TYPE);
$criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_ID);
$criteria->add(AddonsManagerPeer::ADDON_TYPE, $type, Criteria::EQUAL);
$addons = AddonsManagerPeer::doSelect($criteria);
foreach ($addons as $addon) {
$status = $addon->getAddonStatus();
$version = $addon->getAddonVersion();
$enabled = null;
if (!$addon->checkState()) {
$result["errors"][] = array("addonId" => $addon->getAddonId(), "storeId" => $addon->getStoreId());
}
$sw = 1;
$addonInLicense = in_array($addon->getAddonId(), $licenseManager->features);
if ($sw == 1 && $addon->getAddonId() != "enterprise" && !$addonInLicense) {
$sw = 0;
}
if ($type == 'plugin') {
if ($sw == 1 && $addon->isInstalled()) {
if ($addon->isEnabled()) {
$status = "installed";
} else {
$status = "disabled";
}
$version = $addon->getInstalledVersion();
if (version_compare($version . "", $addon->getAddonVersion() . "", "<")) {
$status = "upgrade";
}
$enabled = $addon->isEnabled();
$sw = 0;
}
} else {
$status = "available";
$enabled = false;
if (!$addonInLicense && in_array($addon->getAddonName(), $licenseManager->licensedfeatures) == 1) {
$status = "installed";
$enabled = true;
}
}
if ($sw == 1 && $addonInLicense) {
$status = "ready";
$sw = 0;
}
$state = $addon->getAddonState();
$log = null;
if ($state != null) {
$status = $state;
$log = $addon->getInstallLog();
}
if ($addon->getAddonId() == "enterprise" && $status== 'ready') {
$status = 'installed';
}
if ($status == 'minus-circle' ) {
$status = "available";
}
$result["addons"][$addon->getAddonId()] = array(
"id" => $addon->getAddonId(),
"store" => $addon->getStoreId(),
"name" => $addon->getAddonName(),
"nick" => $addon->getAddonNick(),
"version" => $version,
"enabled" => $enabled,
"latest_version" => $addon->getAddonVersion(),
"type" => $addon->getAddonType(),
"release_type" => $addon->getAddonReleaseType(),
"url" => $addon->getAddonDownloadUrl(),
"publisher" => $addon->getAddonPublisher(),
"description" => $addon->getAddonDescription(),
"status" => $status,
"log" => $log,
"progress" => round($addon->getAddonDownloadProgress())
);
}
return $result;
}
public static function addonFeatureList()
{
$result = array();
@@ -135,6 +243,9 @@ class AddonsStore extends BaseAddonsStore
if ($addon->getAddonId() == "enterprise" && $status== 'ready') {
$status = 'installed';
}
if ($status == 'minus-circle' ) {
$status = "available";
}
$result["addons"][$addon->getAddonId()] = array(
"id" => $addon->getAddonId(),
@@ -175,14 +286,14 @@ class AddonsStore extends BaseAddonsStore
*
* @return array containing a 'stores' array and a 'errors' array
*/
public static function updateAll($force = false)
public static function updateAll($force = false, $type = 'plugin')
{
$stores = array();
$errors = array();
foreach (self::listStores() as $store) {
try {
$stores[$store->getStoreId()] = $store->update($force);
$stores[$store->getStoreId()] = $store->update($force, $type);
} catch (Exception $e) {
$errors[$store->getStoreId()] = $e->getMessage();
}
@@ -196,11 +307,12 @@ class AddonsStore extends BaseAddonsStore
*
* @return int number of addons removed
*/
public function clear()
public function clear($type = 'plugin')
{
/* Remove old items from this store */
$criteria = new Criteria(AddonsManagerPeer::DATABASE_NAME);
$criteria->add(AddonsManagerPeer::STORE_ID, $this->getStoreId(), Criteria::EQUAL);
$criteria->add(AddonsManagerPeer::ADDON_TYPE, $type, Criteria::EQUAL);
return AddonsManagerPeer::doDelete($criteria);
}
@@ -210,7 +322,7 @@ class AddonsStore extends BaseAddonsStore
*
* @return bool true if updated, false otherwise
*/
public function update($force = false)
public function update($force = false, $type = 'plugin')
{
require_once PATH_CORE . 'classes' . PATH_SEP . 'class.pmLicenseManager.php';
@@ -221,12 +333,13 @@ class AddonsStore extends BaseAddonsStore
//If we have any addon that is installing or updating, don't update store
$criteria = new Criteria(AddonsManagerPeer::DATABASE_NAME);
$criteria->add(AddonsManagerPeer::ADDON_STATE, '', Criteria::NOT_EQUAL);
$criteria->add(AddonsManagerPeer::ADDON_TYPE, $type);
if (AddonsManagerPeer::doCount($criteria) > 0) {
return false;
}
$this->clear();
$this->clear($type);
//Fill with local information
@@ -241,74 +354,98 @@ class AddonsStore extends BaseAddonsStore
$pmLicenseManagerO = &pmLicenseManager::getSingleton();
$localPlugins = array();
foreach ($aPluginsPP as $aPlugin) {
$sClassName = substr($aPlugin['sFilename'], 0, strpos($aPlugin['sFilename'], '-'));
if ($type == 'plugin') {
foreach ($aPluginsPP as $aPlugin) {
$sClassName = substr($aPlugin['sFilename'], 0, strpos($aPlugin['sFilename'], '-'));
if (file_exists(PATH_PLUGINS . $sClassName . '.php')) {
require_once PATH_PLUGINS . $sClassName . '.php';
if (file_exists(PATH_PLUGINS . $sClassName . '.php')) {
require_once PATH_PLUGINS . $sClassName . '.php';
$oDetails = $oPluginRegistry->getPluginDetails($sClassName . '.php');
$oDetails = $oPluginRegistry->getPluginDetails($sClassName . '.php');
if ($oDetails) {
$sStatus = $oDetails->enabled ? G::LoadTranslation('ID_ENABLED') : G::LoadTranslation('ID_DISABLED');
if ($oDetails) {
$sStatus = $oDetails->enabled ? G::LoadTranslation('ID_ENABLED') : G::LoadTranslation('ID_DISABLED');
if (isset($oDetails->aWorkspaces)) {
if (!in_array(SYS_SYS, $oDetails->aWorkspaces)) {
if (isset($oDetails->aWorkspaces)) {
if (!in_array(SYS_SYS, $oDetails->aWorkspaces)) {
continue;
}
}
if ($sClassName == "pmLicenseManager" || $sClassName == "pmTrial") {
continue;
}
$sEdit = (($oDetails->sSetupPage != '') && ($oDetails->enabled)? G::LoadTranslation('ID_SETUP') : ' ');
$aPlugin = array();
$aPluginId = $sClassName;
$aPluginTitle = $oDetails->sFriendlyName;
$aPluginDescription = $oDetails->sDescription;
$aPluginVersion = $oDetails->iVersion;
if (@in_array($sClassName, $pmLicenseManagerO->features)) {
$aPluginStatus = $sStatus;
$aPluginLinkStatus = 'pluginsChange?id=' . $sClassName . '.php&status=' . $oDetails->enabled;
$aPluginEdit = $sEdit;
$aPluginLinkEdit = 'pluginsSetup?id=' . $sClassName . '.php';
$aPluginStatusA = $sStatus == "Enabled" ? "installed" : 'disabled';
$enabledStatus = true;
} else {
$aPluginStatus = "";
$aPluginLinkStatus = '';
$aPluginEdit = '';
$aPluginLinkEdit = '';
$aPluginStatusA = 'minus-circle';
$enabledStatus = false;
}
$addon = new AddonsManager();
//G::pr($addon);
$addon->setAddonId($aPluginId);
$addon->setStoreId($this->getStoreId());
//Don't trust external data
$addon->setAddonName($aPluginId);
$addon->setAddonDescription($aPluginDescription);
$addon->setAddonNick($aPluginTitle);
$addon->setAddonVersion("");
$addon->setAddonStatus($aPluginStatusA);
$addon->setAddonType("plugin");
$addon->setAddonPublisher("Colosa");
$addon->setAddonDownloadUrl("");
$addon->setAddonDownloadMd5("");
$addon->setAddonReleaseDate(null);
$addon->setAddonReleaseType('localRegistry');
$addon->setAddonReleaseNotes("");
$addon->setAddonState("");
$addon->save();
$localPlugins[$aPluginId] = $addon;
}
if ($sClassName == "pmLicenseManager" || $sClassName == "pmTrial") {
continue;
}
$sEdit = (($oDetails->sSetupPage != '') && ($oDetails->enabled)? G::LoadTranslation('ID_SETUP') : ' ');
$aPlugin = array();
$aPluginId = $sClassName;
$aPluginTitle = $oDetails->sFriendlyName;
$aPluginDescription = $oDetails->sDescription;
$aPluginVersion = $oDetails->iVersion;
if (@in_array($sClassName, $pmLicenseManagerO->features)) {
$aPluginStatus = $sStatus;
$aPluginLinkStatus = 'pluginsChange?id=' . $sClassName . '.php&status=' . $oDetails->enabled;
$aPluginEdit = $sEdit;
$aPluginLinkEdit = 'pluginsSetup?id=' . $sClassName . '.php';
$aPluginStatusA = $sStatus == "Enabled" ? "installed" : 'disabled';
$enabledStatus = true;
} else {
$aPluginStatus = "";
$aPluginLinkStatus = '';
$aPluginEdit = '';
$aPluginLinkEdit = '';
$aPluginStatusA = 'minus-circle';
$enabledStatus = false;
}
$addon = new AddonsManager();
//G::pr($addon);
$addon->setAddonId($aPluginId);
$addon->setStoreId($this->getStoreId());
//Don't trust external data
$addon->setAddonName($aPluginId);
$addon->setAddonDescription($aPluginDescription);
$addon->setAddonNick($aPluginTitle);
$addon->setAddonVersion("");
$addon->setAddonStatus($aPluginStatusA);
$addon->setAddonType("plugin");
$addon->setAddonPublisher("Colosa");
$addon->setAddonDownloadUrl("");
$addon->setAddonDownloadMd5("");
$addon->setAddonReleaseDate(null);
$addon->setAddonReleaseType('localRegistry');
$addon->setAddonReleaseNotes("");
$addon->setAddonState("");
$addon->save();
$localPlugins[$aPluginId] = $addon;
}
}
} else {
$list = unserialize($pmLicenseManagerO->licensedfeaturesList);
foreach ($list['addons'] as $key => $feature) {
$addon = new AddonsManager();
$addon->setAddonId($feature['name']);
$addon->setStoreId($feature['guid']);
$addon->setAddonName($feature['name']);
$addon->setAddonDescription($feature['description']);
$addon->setAddonNick($feature['nick']);
$addon->setAddonVersion("");
$addon->setAddonStatus($feature['status']);
$addon->setAddonType("features");
$addon->setAddonPublisher("Colosa");
$addon->setAddonDownloadUrl("");
$addon->setAddonDownloadMd5("");
$addon->setAddonReleaseDate(null);
$addon->setAddonReleaseType('localRegistry');
$addon->setAddonReleaseNotes("");
$addon->setAddonState("");
$addon->save();
}
}
$this->setStoreLastUpdated(time());
@@ -359,6 +496,7 @@ class AddonsStore extends BaseAddonsStore
$context = stream_context_create($option);
//This may block for a while, always use AJAX to call this method
$url = $url . '&type=' . strtoupper($type);
$data = file_get_contents($url, false, $context);
if ($data === false) {
@@ -388,7 +526,7 @@ class AddonsStore extends BaseAddonsStore
throw (new Exception("Addons not found on store data"));
}
$this->clear();
$this->clear($type);
try {
//Add each item to this stores addons
@@ -451,7 +589,7 @@ class AddonsStore extends BaseAddonsStore
$this->save();
} catch (Exception $e) {
//If we had issues, don't keep only a part of the items
$this->clear();
$this->clear($type);
throw $e;
}

View File

@@ -253,7 +253,11 @@ class CalendarDefinition extends BaseCalendarDefinition
if (! (is_object( $tr ) && get_class( $tr ) == 'CalendarDefinition')) {
$tr = new CalendarDefinition();
$tr->setCalendarCreateDate( 'now' );
G::auditLog("CreateCalendar", "Calendar Name: ".$aData['CALENDAR_NAME']);
} else {
G::auditLog("UpdateCalendar", "Calendar Name: ".$aData['CALENDAR_NAME']." Calendar ID: (".$CalendarUid.") ");
}
$tr->setCalendarUid( $CalendarUid );
$tr->setCalendarName( $CalendarName );
$tr->setCalendarUpdateDate( 'now' );
@@ -315,6 +319,8 @@ class CalendarDefinition extends BaseCalendarDefinition
if ($tr->validate()) {
// we save it, since we get no validation errors, or do whatever else you like.
$res = $tr->save();
$deletedCalendar = $tr->getCalendarName();
G::auditLog("DeleteCalendar", "Calendar Name: ".$deletedCalendar." Calendar ID: (".$CalendarUid.") ");
} else {
// Something went wrong. We can now get the validationFailures and handle them.
$msg = '';

View File

@@ -342,7 +342,7 @@ class Content extends BaseContent
`CON_LANG` VARCHAR(10) default '' NOT NULL,
`CON_VALUE` MEDIUMTEXT NOT NULL,
CONSTRAINT CONTENT_BACKUP_PK PRIMARY KEY (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG)
)Engine=MyISAM DEFAULT CHARSET='utf8' COMMENT='Table for add content';" );
)Engine=InnoDB DEFAULT CHARSET='utf8' COMMENT='Table for add content';" );
$oStatement->executeQuery();
$sql = " SELECT DISTINCT CON_LANG

View File

@@ -57,8 +57,10 @@ class DashletInstance extends BaseDashletInstance
$data['DAS_INS_UID'] = G::generateUniqueID();
$data['DAS_INS_CREATE_DATE'] = date('Y-m-d H:i:s');
$dashletInstance = new DashletInstance();
$msg = 'CreateDashletInstance';
} else {
$dashletInstance = DashletInstancePeer::retrieveByPK($data['DAS_INS_UID']);
$msg = 'UpdateDashletInstance';
}
$data['DAS_INS_UPDATE_DATE'] = date('Y-m-d H:i:s');
$dashletInstance->fromArray($data, BasePeer::TYPE_FIELDNAME);
@@ -66,6 +68,10 @@ class DashletInstance extends BaseDashletInstance
$connection->begin();
$result = $dashletInstance->save();
$connection->commit();
$dashletData = $this->load($data['DAS_INS_UID']);
G::auditLog($msg, "Dashlet Instance Name: ".$dashletData['DAS_INS_TITLE']." Dashlet Instance ID: (".$dashletData['DAS_INS_UID'].") ");
return $data['DAS_INS_UID'];
} else {
$message = '';
@@ -88,8 +94,11 @@ class DashletInstance extends BaseDashletInstance
$dashletInstance = DashletInstancePeer::retrieveByPK($dasInsUid);
if (!is_null($dashletInstance)) {
$connection->begin();
$dashletData = $this->load($dasInsUid);
$result = $dashletInstance->delete();
$connection->commit();
G::auditLog("DeleteDashletInstance", "Dashlet Instance Name: ". $dashletData['DAS_INS_TITLE']." Dashlet Instance ID: (".$dasInsUid.") ");
return $result;
} else {
throw new Exception('Error trying to delete: The row "' . $dasInsUid. '" does not exist.');

View File

@@ -61,6 +61,12 @@ class Department extends BaseDepartment
$this->setDepUid( G::generateUniqueID() );
}
if (isset( $aData['DEP_PARENT'] ) && ($aData['DEP_PARENT'] =='')) {
$msgLog = 'Departament';
} else {
$msgLog = 'SubDepartament';
}
if (isset( $aData['DEP_PARENT'] )) {
$this->setDepParent( $aData['DEP_PARENT'] );
} else {
@@ -108,6 +114,9 @@ class Department extends BaseDepartment
$res = $this->save();
$con->commit();
G::auditLog("Create".$msgLog, $msgLog." Name: ". $aData['DEP_TITLE']);
return $this->getDepUid();
} else {
$msg = '';
@@ -277,8 +286,11 @@ class Department extends BaseDepartment
$oPro = DepartmentPeer::retrieveByPK( $ProUid );
if (! is_null( $oPro )) {
$dptoTitle = $this->Load($oPro->getDepUid());
Content::removeContent( 'DEPO_TITLE', '', $oPro->getDepUid() );
Content::removeContent( 'DEPO_DESCRIPTION', '', $oPro->getDepUid() );
G::auditLog("DeleteDepartament", "Departament Name: ".$dptoTitle['DEPO_TITLE']." Departament ID: (".$oPro->getDepUid().") ");
return $oPro->delete();
} else {
throw (new Exception( "The row '$ProUid' in table Group doesn't exist!" ));
@@ -320,10 +332,11 @@ class Department extends BaseDepartment
}
public function updateDepartmentManager ($depId)
{
{
$managerId = '';
$depParent = '';
$oDept = DepartmentPeer::retrieveByPk( $depId );
if (is_object( $oDept ) && get_class( $oDept ) == 'Department') {
$managerId = $oDept->getDepManager();
$depParent = $oDept->getDepParent();
@@ -353,7 +366,12 @@ class Department extends BaseDepartment
}
$oUser->save();
}
if ($managerId) {
$user = $oUser->loadDetailed ($managerId);
$dptoTitle = $oDept->Load($depId);
G::auditLog("AssignManagerToDepartament", "Assign Manager ".$user['USR_USERNAME']." (".$managerId.") to ".$dptoTitle['DEPO_TITLE']." (".$depId.") ");
}
// get children departments to update the reportsTo of these children
$childrenCriteria = new Criteria( 'workflow' );
$childrenCriteria->add( DepartmentPeer::DEP_PARENT, $depId );
@@ -378,9 +396,13 @@ class Department extends BaseDepartment
try {
//update the field in user table
$oUser = UsersPeer::retrieveByPk( $userId );
$user = $oUser->loadDetailed ($userId);
$dptoTitle = $this->Load($depId);
if (is_object( $oUser ) && get_class( $oUser ) == 'Users') {
$oUser->setDepUid( $depId );
$oUser->save();
G::auditLog("AssignUserToDepartament", "Assign user ".$user['USR_USERNAME']." (".$userId.") to departament ".$dptoTitle['DEPO_TITLE']." (".$depId.") ");
}
//if the user is a manager update Department Table
@@ -549,11 +571,16 @@ class Department extends BaseDepartment
);
try {
$oUser = UsersPeer::retrieveByPk( $UsrUid );
$user = $oUser->loadDetailed ($UsrUid);
$dptoTitle = $this->Load($DepUid);
if (is_object( $oUser ) && get_class( $oUser ) == 'Users') {
//$oDepto = new Users();
$oUser->setDepUid( '' );
$oUser->setUsrReportsTo( '' );
$oUser->save();
G::auditLog("RemoveUsersFromDepartament", "Remove user ".$user['USR_USERNAME']."( ".$UsrUid.") from departament ".$dptoTitle['DEPO_TITLE']." (".$DepUid.") ");
}
} catch (exception $oError) {
throw ($oError);

View File

@@ -91,6 +91,15 @@ class GroupUser extends BaseGroupUser
$oConnection->begin();
$iResult = $oGroupUser->delete();
$oConnection->commit();
$oGrpwf = new Groupwf();
$grpName = $oGrpwf->loadByGroupUid($sGrpUid);
$oUsr = new Users();
$usrName = $oUsr->load($sUserUid);
G::auditLog("AssignUserToGroup", "Remove user: ".$usrName['USR_USERNAME'] ." (".$sUserUid.") from group ".$grpName['CON_VALUE']." (".$sGrpUid.") ");
return $iResult;
} else {
throw (new Exception( 'This row doesn\'t exist!' ));

View File

@@ -272,6 +272,26 @@ class Groupwf extends BaseGroupwf
return $c;
}
public function loadByGroupUid ($UidGroup)
{
$c = new Criteria( 'workflow' );
$del = DBAdapter::getStringDelimiter();
$c->clearSelectColumns();
$c->addSelectColumn( ContentPeer::CON_VALUE );
$c->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
$c->add( ContentPeer::CON_ID, $UidGroup );
$c->add( ContentPeer::CON_LANG, SYS_LANG );
$dataset = ContentPeer::doSelectRS( $c );
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$dataset->next();
$row = $dataset->getRow();
return $row;
}
public function getAll ($start = null, $limit = null, $search = null)
{
$totalCount = 0;

View File

@@ -301,6 +301,8 @@ class Language extends BaseLanguage
$results->headers = $POHeaders;
$results->errMsg = $errorMsg;
G::auditLog("UploadLanguage", "Language: ".$languageID);
return $results;
} catch (Exception $oError) {
throw ($oError);
@@ -549,6 +551,7 @@ class Language extends BaseLanguage
}
} //end foreach
}
G::auditLog("ExportLanguage", "Language: ".$_GET['LOCALE']);
G::streamFile( $sPOFile, true );
}
public function updateLanguagePlugin ($plugin, $idLanguage)

View File

@@ -55,6 +55,22 @@ class ProcessCategory extends BaseProcessCategory
return $aRow;
}
public function loadByCategoryId($sCategoryUid)
{
$c = new Criteria('workflow');
$del = DBAdapter::getStringDelimiter();
$c->clearSelectColumns();
$c->addSelectColumn( ProcessCategoryPeer::CATEGORY_NAME);
$c->add(ProcessCategoryPeer::CATEGORY_UID, $sCategoryUid);
$dataset = ProcessCategoryPeer::doSelectRS($c);
$dataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$dataset->next();
$aRow = $dataset->getRow();
return $aRow['CATEGORY_NAME'];
}
public function exists ($catUid)
{
$oProCat = ProcessCategoryPeer::retrieveByPk( $catUid );

View File

@@ -454,6 +454,7 @@ class Translation extends BaseTranslation
if (file_exists( PATH_CORE . PATH_SEP . 'content' . PATH_SEP . 'translations' . PATH_SEP . 'processmaker' . $locale . '.po' )) {
G::rm_dir( PATH_CORE . PATH_SEP . 'content' . PATH_SEP . 'translations' . PATH_SEP . 'processmaker' . $locale . '.po' );
}
G::auditLog("DeleteLanguage", "Language: ".$locale);
}
}

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: ProcessMaker 2.5.2.3\n"
"Project-Id-Version: ProcessMaker 2.8.0\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2014-09-22 16:11:21\n"
"PO-Revision-Date: 2014-10-13 12:37:31\n"
"Last-Translator: \n"
"Language-Team: Colosa Developers Team <developers@colosa.com>\n"
"MIME-Version: 1.0\n"
@@ -10036,8 +10036,8 @@ msgstr "Resume"
# TRANSLATION
# LABEL/ID_USER_ID
#: LABEL/ID_USER_ID
msgid "User ID (*)"
msgstr "User ID (*)"
msgid "[LABEL/ID_USER_ID] Username"
msgstr "Username"
# TRANSLATION
# LABEL/ID_PHONE
@@ -12412,8 +12412,8 @@ msgstr "Ajax communication failed"
# TRANSLATION
# LABEL/ID_CHECK_FIELDS_MARK_RED
#: LABEL/ID_CHECK_FIELDS_MARK_RED
msgid "Please check the fields mark in red."
msgstr "Please check the fields mark in red."
msgid "Please check the fields marked in red."
msgstr "Please check the fields marked in red."
# TRANSLATION
# LABEL/ID_INPUT_ERROR
@@ -13204,8 +13204,8 @@ msgstr "xxx"
# TRANSLATION
# LABEL/ID_SIZE_VERY_LARGE_PERMITTED
#: LABEL/ID_SIZE_VERY_LARGE_PERMITTED
msgid "The size is very large as permitted!"
msgstr "The size is very large as permitted!"
msgid "The file is too large . Please upload a smaller file."
msgstr "The file is too large . Please upload a smaller file."
# TRANSLATION
# LABEL/ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP5
@@ -14392,8 +14392,8 @@ msgstr "All Categories"
# TRANSLATION
# LABEL/ID_CASES_NOTES_NO_PERMISSIONS
#: LABEL/ID_CASES_NOTES_NO_PERMISSIONS
msgid "You do not have permission to cases notes"
msgstr "You do not have permission to cases notes"
msgid "You do not have permission to access cases notes"
msgstr "You do not have permission to access cases notes"
# TRANSLATION
# LABEL/ID_DELETE_DOCUMENT
@@ -16456,8 +16456,8 @@ msgstr "Index"
# TRANSLATION
# LABEL/ID_ERROR_JS_NOT_AVAILABLE
#: LABEL/ID_ERROR_JS_NOT_AVAILABLE
msgid "Your browser does not support javascript or it is disabled, please use a different browser or activate the javascript. Forms won't work totally because javascript is used."
msgstr "Your browser does not support javascript or it is disabled, please use a different browser or activate the javascript. Forms won't work totally because javascript is used."
msgid "Your browser doesn't support JavaScript or it may be disabled. Please use a different browser or enable the JavaScript, Dynaforms won't entirely work because JavaScript is used."
msgstr "Your browser doesn't support JavaScript or it may be disabled. Please use a different browser or enable the JavaScript, Dynaforms won't entirely work because JavaScript is used."
# TRANSLATION
# LABEL/ID_MAXIMUM_SIZE_FILE_REQUIRED
@@ -16900,14 +16900,14 @@ msgstr "Audit Log has been disabled"
# TRANSLATION
# LABEL/ID_AUDIT_LOG_DETAILS_1
#: LABEL/ID_AUDIT_LOG_DETAILS_1
msgid "Audit Log details1"
msgstr "Audit Log details1"
msgid "When this option is enabled, all changes made in the \"ADMIN\" tab are registered in a log."
msgstr "When this option is enabled, all changes made in the \"ADMIN\" tab are registered in a log."
# TRANSLATION
# LABEL/ID_AUDIT_LOG_DETAILS_2
#: LABEL/ID_AUDIT_LOG_DETAILS_2
msgid "Audit Log details 2"
msgstr "Audit Log details 2"
msgid "and the user will be able to see those changes in the \"Audit Log\" option in Logs Menu"
msgstr "and the user will be able to see those changes in the \"Audit Log\" option in Logs Menu"
# TRANSLATION
# LABEL/ID_PRIVATE
@@ -16945,6 +16945,492 @@ msgstr "center"
msgid "right"
msgstr "right"
# TRANSLATION
# LABEL/ID_LANGUAGE_CANT_DELETE_CURRENTLY
#: LABEL/ID_LANGUAGE_CANT_DELETE_CURRENTLY
msgid "The language, which the system is currently using, cannot be deleted."
msgstr "The language, which the system is currently using, cannot be deleted."
# TRANSLATION
# LABEL/ID_INPUT_DOC_MAX_FILESIZE_REQUIRED
#: LABEL/ID_INPUT_DOC_MAX_FILESIZE_REQUIRED
msgid "Maximum file size parameter is required."
msgstr "Maximum file size parameter is required."
# TRANSLATION
# LABEL/ID_AUDIT_LOG_ACTIONS
#: LABEL/ID_AUDIT_LOG_ACTIONS
msgid "Audit Log Actions"
msgstr "Audit Log Actions"
# TRANSLATION
# LABEL/ID_RESET_FILTERS
#: LABEL/ID_RESET_FILTERS
msgid "Reset Filters"
msgstr "Reset Filters"
# TRANSLATION
# LABEL/ID_INPUT_DB
#: LABEL/ID_INPUT_DB
msgid "Input"
msgstr "Input"
# TRANSLATION
# LABEL/ID_TRIGGER_DB
#: LABEL/ID_TRIGGER_DB
msgid "Trigger"
msgstr "Trigger"
# TRANSLATION
# LABEL/ID_IP
#: LABEL/ID_IP
msgid "IP Client"
msgstr "IP Client"
# TRANSLATION
# LABEL/ID_OUTPUT_DB
#: LABEL/ID_OUTPUT_DB
msgid "Output"
msgstr "Output"
# TRANSLATION
# LABEL/ID_ATTACHED_DB
#: LABEL/ID_ATTACHED_DB
msgid "Attached"
msgstr "Attached"
# TRANSLATION
# LABEL/ID_DERIVATION_DB
#: LABEL/ID_DERIVATION_DB
msgid "Derivation"
msgstr "Derivation"
# TRANSLATION
# LABEL/ID_OPEN_DYNAFORM_TAB
#: LABEL/ID_OPEN_DYNAFORM_TAB
msgid "Open the Dynaform in a new tab"
msgstr "Open the Dynaform in a new tab"
# TRANSLATION
# LABEL/ID_ENTERPRISE_FEATURES
#: LABEL/ID_ENTERPRISE_FEATURES
msgid "Enterprise features"
msgstr "Enterprise features"
# TRANSLATION
# LABEL/ID_CREATE_USER
#: LABEL/ID_CREATE_USER
msgid "Create User"
msgstr "Create User"
# TRANSLATION
# LABEL/ID_UPDATE_USER
#: LABEL/ID_UPDATE_USER
msgid "Update User"
msgstr "Update User"
# TRANSLATION
# LABEL/ID_DELETE_USER
#: LABEL/ID_DELETE_USER
msgid "Delete User"
msgstr "Delete User"
# TRANSLATION
# LABEL/ID_ENABLE_USER
#: LABEL/ID_ENABLE_USER
msgid "Enable User"
msgstr "Enable User"
# TRANSLATION
# LABEL/ID_DISABLE_USER
#: LABEL/ID_DISABLE_USER
msgid "Disable User"
msgstr "Disable User"
# TRANSLATION
# LABEL/ID_ASSIGN_AUTHENTICATION_SOURCE
#: LABEL/ID_ASSIGN_AUTHENTICATION_SOURCE
msgid "Assign Authentication Source"
msgstr "Assign Authentication Source"
# TRANSLATION
# LABEL/ID_ASSIGN_USER_TO_GROUP
#: LABEL/ID_ASSIGN_USER_TO_GROUP
msgid "Assign Users To Group"
msgstr "Assign Users To Group"
# TRANSLATION
# LABEL/ID_CREATE_AUTH_SOURCE
#: LABEL/ID_CREATE_AUTH_SOURCE
msgid "Create Authentication Source"
msgstr "Create Authentication Source"
# TRANSLATION
# LABEL/ID_UPDATE_AUTH_SOURCE
#: LABEL/ID_UPDATE_AUTH_SOURCE
msgid "Update Authentication Source"
msgstr "Update Authentication Source"
# TRANSLATION
# LABEL/ID_DELETE_AUTH_SOURCE
#: LABEL/ID_DELETE_AUTH_SOURCE
msgid "Delete Authentication Source"
msgstr "Delete Authentication Source"
# TRANSLATION
# LABEL/ID_UPDATE_ROLE
#: LABEL/ID_UPDATE_ROLE
msgid "Update Role"
msgstr "Update Role"
# TRANSLATION
# LABEL/ID_DELETE_ROLE
#: LABEL/ID_DELETE_ROLE
msgid "Delete Role"
msgstr "Delete Role"
# TRANSLATION
# LABEL/ID_ASSIGN_USER_TO_ROLE
#: LABEL/ID_ASSIGN_USER_TO_ROLE
msgid "Assign Users To Role"
msgstr "Assign Users To Role"
# TRANSLATION
# LABEL/ID_DELETE_USER_TO_ROLE
#: LABEL/ID_DELETE_USER_TO_ROLE
msgid "Delete Users To Role"
msgstr "Delete Users To Role"
# TRANSLATION
# LABEL/ID_ADD_PERMISSION_TO_ROLE
#: LABEL/ID_ADD_PERMISSION_TO_ROLE
msgid "Add Permission To Role"
msgstr "Add Permission To Role"
# TRANSLATION
# LABEL/ID_DELETE_PERMISSION_TO_ROLE
#: LABEL/ID_DELETE_PERMISSION_TO_ROLE
msgid "Delete Permission To Role"
msgstr "Delete Permission To Role"
# TRANSLATION
# LABEL/ID_CREATE_SKIN
#: LABEL/ID_CREATE_SKIN
msgid "Create Skin"
msgstr "Create Skin"
# TRANSLATION
# LABEL/ID_IMPORT_SKIN
#: LABEL/ID_IMPORT_SKIN
msgid "Import Skin"
msgstr "Import Skin"
# TRANSLATION
# LABEL/ID_EXPORT_SKIN
#: LABEL/ID_EXPORT_SKIN
msgid "Export Skin"
msgstr "Export Skin"
# TRANSLATION
# LABEL/ID_DELETE_SKIN
#: LABEL/ID_DELETE_SKIN
msgid "Delete Skin"
msgstr "Delete Skin"
# TRANSLATION
# LABEL/ID_UPDATE_GROUP
#: LABEL/ID_UPDATE_GROUP
msgid "Update Group"
msgstr "Update Group"
# TRANSLATION
# LABEL/ID_CREATE_CATEGORY
#: LABEL/ID_CREATE_CATEGORY
msgid "Create Category"
msgstr "Create Category"
# TRANSLATION
# LABEL/ID_UPDATE_CATEGORY
#: LABEL/ID_UPDATE_CATEGORY
msgid "Update Category"
msgstr "Update Category"
# TRANSLATION
# LABEL/ID_DELETE_CATEGORY
#: LABEL/ID_DELETE_CATEGORY
msgid "Delete Category"
msgstr "Delete Category"
# TRANSLATION
# LABEL/ID_BUILD_CACHE
#: LABEL/ID_BUILD_CACHE
msgid "[LABEL/ID_BUILD_CACHE] Build Cache"
msgstr "Build Cache"
# TRANSLATION
# LABEL/ID_CLEAR_CRON
#: LABEL/ID_CLEAR_CRON
msgid "Clear Cron"
msgstr "Clear Cron"
# TRANSLATION
# LABEL/ID_REPLACE_LOGO
#: LABEL/ID_REPLACE_LOGO
msgid "Replace Logo"
msgstr "Replace Logo"
# TRANSLATION
# LABEL/ID_UPDATE_LOGIN_SETTINGS
#: LABEL/ID_UPDATE_LOGIN_SETTINGS
msgid "Update Login Settings"
msgstr "Update Login Settings"
# TRANSLATION
# LABEL/ID_DISABLE_HEART_BEAT
#: LABEL/ID_DISABLE_HEART_BEAT
msgid "Disable Heart Beat"
msgstr "Disable Heart Beat"
# TRANSLATION
# LABEL/ID_CREATE_PMTABLE
#: LABEL/ID_CREATE_PMTABLE
msgid "Create PM Table"
msgstr "Create PM Table"
# TRANSLATION
# LABEL/ID_UPDATE_PMTABLE
#: LABEL/ID_UPDATE_PMTABLE
msgid "Update PM Table"
msgstr "Update PM Table"
# TRANSLATION
# LABEL/ID_DELETE_PMTABLE
#: LABEL/ID_DELETE_PMTABLE
msgid "Delete PM Table"
msgstr "Delete PM Table"
# TRANSLATION
# LABEL/ID_ADD_DATA_PMTABLE
#: LABEL/ID_ADD_DATA_PMTABLE
msgid "Add Data to PM table"
msgstr "Add Data to PM table"
# TRANSLATION
# LABEL/ID_UPDATE_DATA_PMTABLE
#: LABEL/ID_UPDATE_DATA_PMTABLE
msgid "Update Data from PM Table"
msgstr "Update Data from PM Table"
# TRANSLATION
# LABEL/ID_DELETE_DATA_PMTABLE
#: LABEL/ID_DELETE_DATA_PMTABLE
msgid "Delete Data from PM Table"
msgstr "Delete Data from PM Table"
# TRANSLATION
# LABEL/ID_IMPORT_TABLE
#: LABEL/ID_IMPORT_TABLE
msgid "Import Table"
msgstr "Import Table"
# TRANSLATION
# LABEL/ID_EXPORT_TABLE
#: LABEL/ID_EXPORT_TABLE
msgid "Export Table"
msgstr "Export Table"
# TRANSLATION
# LABEL/ID_CREATE_CALENDAR
#: LABEL/ID_CREATE_CALENDAR
msgid "Create Calendar"
msgstr "Create Calendar"
# TRANSLATION
# LABEL/ID_UPDATE_CALENDAR
#: LABEL/ID_UPDATE_CALENDAR
msgid "Update Calendar"
msgstr "Update Calendar"
# TRANSLATION
# LABEL/ID_DELETE_CALENDAR
#: LABEL/ID_DELETE_CALENDAR
msgid "Delete Calendar"
msgstr "Delete Calendar"
# TRANSLATION
# LABEL/ID_CREATE_DASHLET_INSTANCE
#: LABEL/ID_CREATE_DASHLET_INSTANCE
msgid "Create Dashlet Instance"
msgstr "Create Dashlet Instance"
# TRANSLATION
# LABEL/ID_UPDATE_DASHLET_INSTANCE
#: LABEL/ID_UPDATE_DASHLET_INSTANCE
msgid "Update Dashlet Instance"
msgstr "Update Dashlet Instance"
# TRANSLATION
# LABEL/ID_DELETE_DASHLET_INSTANCE
#: LABEL/ID_DELETE_DASHLET_INSTANCE
msgid "Delete Dashlet Instance"
msgstr "Delete Dashlet Instance"
# TRANSLATION
# LABEL/ID_CREATE_DEPARTAMENT
#: LABEL/ID_CREATE_DEPARTAMENT
msgid "Create Departament"
msgstr "Create Departament"
# TRANSLATION
# LABEL/ID_CREATE_SUB_DEPARTAMENT
#: LABEL/ID_CREATE_SUB_DEPARTAMENT
msgid "Create Sub Departament"
msgstr "Create Sub Departament"
# TRANSLATION
# LABEL/ID_UPDATE_DEPARTAMENT
#: LABEL/ID_UPDATE_DEPARTAMENT
msgid "Update Departament"
msgstr "Update Departament"
# TRANSLATION
# LABEL/ID_UPDATE_SUB_DEPARTAMENT
#: LABEL/ID_UPDATE_SUB_DEPARTAMENT
msgid "Update Sub Departament"
msgstr "Update Sub Departament"
# TRANSLATION
# LABEL/ID_DELETE_DEPARTAMENT
#: LABEL/ID_DELETE_DEPARTAMENT
msgid "Delete Departament"
msgstr "Delete Departament"
# TRANSLATION
# LABEL/ID_ASSIGN_MANAGER_TO_DEPARTAMENT
#: LABEL/ID_ASSIGN_MANAGER_TO_DEPARTAMENT
msgid "Assign Manager To Departament"
msgstr "Assign Manager To Departament"
# TRANSLATION
# LABEL/ID_ASSIGN_USER_TO_DEPARTAMENT
#: LABEL/ID_ASSIGN_USER_TO_DEPARTAMENT
msgid "Assign Users To Departament"
msgstr "Assign Users To Departament"
# TRANSLATION
# LABEL/ID_REMOVE_USERS_FROM_DEPARTAMENT
#: LABEL/ID_REMOVE_USERS_FROM_DEPARTAMENT
msgid "Remove Users From Departament"
msgstr "Remove Users From Departament"
# TRANSLATION
# LABEL/ID_UPLOAD_LANGUAGE
#: LABEL/ID_UPLOAD_LANGUAGE
msgid "Upload Language"
msgstr "Upload Language"
# TRANSLATION
# LABEL/ID_EXPORT_LANGUAGE
#: LABEL/ID_EXPORT_LANGUAGE
msgid "Export Language"
msgstr "Export Language"
# TRANSLATION
# LABEL/ID_DELETE_LAGUAGE
#: LABEL/ID_DELETE_LAGUAGE
msgid "Delete Language"
msgstr "Delete Language"
# TRANSLATION
# LABEL/ID_UPLOAD_SYSTEM_SETTINGS
#: LABEL/ID_UPLOAD_SYSTEM_SETTINGS
msgid "Upload System Settings"
msgstr "Upload System Settings"
# TRANSLATION
# LABEL/ID_UPDATE_EMAIL_SETTINGS
#: LABEL/ID_UPDATE_EMAIL_SETTINGS
msgid "Update Email Settings"
msgstr "Update Email Settings"
# TRANSLATION
# LABEL/ID_CREATE_EMAIL_SETTINGS
#: LABEL/ID_CREATE_EMAIL_SETTINGS
msgid "Create Email Settings"
msgstr "Create Email Settings"
# TRANSLATION
# LABEL/ID_UPLOAD_LOGO
#: LABEL/ID_UPLOAD_LOGO
msgid "Upload Logo"
msgstr "Upload Logo"
# TRANSLATION
# LABEL/ID_DELETE_LOGO
#: LABEL/ID_DELETE_LOGO
msgid "Delete Logo"
msgstr "Delete Logo"
# TRANSLATION
# LABEL/ID_INSTALL_PLUGIN
#: LABEL/ID_INSTALL_PLUGIN
msgid "Install Plugin"
msgstr "Install Plugin"
# TRANSLATION
# LABEL/ID_SET_COLUMNS
#: LABEL/ID_SET_COLUMNS
msgid "Set Columns"
msgstr "Set Columns"
# TRANSLATION
# LABEL/ID_DISABLE_AUDIT_LOG
#: LABEL/ID_DISABLE_AUDIT_LOG
msgid "Disable Audit Log"
msgstr "Disable Audit Log"
# TRANSLATION
# LABEL/ID_REMOVE_PLUGIN
#: LABEL/ID_REMOVE_PLUGIN
msgid "Remove Plugin"
msgstr "Remove Plugin"
# TRANSLATION
# LABEL/ID_CREATE_ROLE
#: LABEL/ID_CREATE_ROLE
msgid "[LABEL/ID_CREATE_ROLE] Create New Role"
msgstr "Create New Role"
# TRANSLATION
# LABEL/ID_CREATE_GROUP
#: LABEL/ID_CREATE_GROUP
msgid "[LABEL/ID_CREATE_GROUP] Create New Group"
msgstr "Create New Group"
# TRANSLATION
# LABEL/ID_DELETE_GROUP
#: LABEL/ID_DELETE_GROUP
msgid "Remove Group"
msgstr "Remove Group"
# TRANSLATION
# LABEL/ID_DISABLE_PLUGIN
#: LABEL/ID_DISABLE_PLUGIN
msgid "Disable Plugin"
msgstr "Disable Plugin"
# TRANSLATION
# LABEL/ID_ENABLE_PLUGIN
#: LABEL/ID_ENABLE_PLUGIN
msgid "Enable Plugin"
msgstr "Enable Plugin"
# TRANSLATION
# LABEL/ID_UPDATE_ENVIRONMENT_SETTINGS
#: LABEL/ID_UPDATE_ENVIRONMENT_SETTINGS
msgid "Update Environment Settings"
msgstr "Update Environment Settings"
# additionalTables/additionalTablesData.xml?ADD_TAB_NAME
# additionalTables/additionalTablesData.xml
#: text - ADD_TAB_NAME
@@ -25262,7 +25748,7 @@ msgstr "-- Default --"
# events/eventsEditAction.xml?TRI_UID
# events/eventsEditAction.xml
#: dropdown - TRI_UID
msgid "Trigger"
msgid "[events/eventsEditAction.xml?TRI_UID] Trigger"
msgstr "Trigger"
# events/eventsEditAction.xml?TRI_UID-
@@ -35690,7 +36176,7 @@ msgstr "Last Name"
# users/users_Edit.xml?USR_USERNAME
# users/users_Edit.xml
#: text - USR_USERNAME
msgid "[users/users_Edit.xml?USR_USERNAME] User ID (*)"
msgid "User ID (*)"
msgstr "User ID (*)"
# users/users_Edit.xml?USR_EMAIL
@@ -37928,7 +38414,7 @@ msgstr "Label"
# dynaforms/fields/file.xml?PME_INPUT
# dynaforms/fields/file.xml
#: dropdown - PME_INPUT
msgid "Input"
msgid "[dynaforms/fields/file.xml?PME_INPUT] Input"
msgstr "Input"
# dynaforms/fields/file.xml?PME_INPUT-

View File

@@ -121,6 +121,12 @@ class adminProxy extends HttpProxyController
$this->restart = $restart;
$this->url = "/sys" . SYS_SYS . "/" . (($sysConf["default_lang"] != "")? $sysConf["default_lang"] : ((defined("SYS_LANG") && SYS_LANG != "")? SYS_LANG : "en")) . "/" . $sysConf["default_skin"] . $urlPart;
$this->message = 'Saved Successfully';
$msg = "";
if($httpData->proxy_host != '' || $httpData->proxy_port != '' || $httpData->proxy_user != '') {
$msg = " Host -> ".$httpData->proxy_host." Port -> ".$httpData->proxy_port." User -> ".$httpData->proxy_user;
}
G::auditLog("UploadSystemSettings", "Time Zone -> ".$httpData->time_zone." Memory Limit -> ".$httpData->memory_limit." Cookie lifetime -> ".$httpData->max_life_time." Default Skin -> ".$httpData->default_skin." Default Language -> ". $httpData->default_lang. $msg);
}
public function uxUserUpdate($httpData)
@@ -732,6 +738,7 @@ class adminProxy extends HttpProxyController
);
$this->success='true';
$this->msg='Saved';
G::auditLog("UpdateEmailSettings", "EnableEmailNotifications->".$aFields['MESS_ENABLED']." EmailEngine->".$aFields['MESS_ENGINE']." Server->".$aFields['MESS_SERVER']." Port->".$aFields['MESS_PORT']." RequireAuthentication->".$aFields['MESS_RAUTH']." FromMail->".$aFields['MESS_ACCOUNT']." FromName->".$aFields['MESS_FROM_NAME']." Use Secure Connection->".$aFields['SMTPSecure']);
} else {
$oConfiguration->create(
array(
@@ -745,6 +752,7 @@ class adminProxy extends HttpProxyController
);
$this->success='true';
$this->msg='Saved';
G::auditLog("CreateEmailSettings", "EnableEmailNotifications->".$aFields['MESS_ENABLED']." EmailEngine->".$aFields['MESS_ENGINE']." Server->".$aFields['MESS_SERVER']." Port->".$aFields['MESS_PORT']." RequireAuthentication->".$aFields['MESS_RAUTH']." FromMail->".$aFields['MESS_ACCOUNT']." FromName->".$aFields['MESS_FROM_NAME']." Use Secure Connection->".$aFields['SMTPSecure']);
}
} catch (Exception $e) {
$this->success= false;
@@ -1048,6 +1056,7 @@ class adminProxy extends HttpProxyController
try {
list($imageWidth, $imageHeight, $imageType) = @getimagesize($dir . '/' . 'tmp' . $fileName);
G::resizeImage($dir . '/tmp' . $fileName, $imageWidth, 49, $dir . '/' . $fileName);
G::auditLog("UploadLogo", "File Name: ".$fileName);
} catch (Exception $e) {
$error = $e->getMessage();
}
@@ -1064,8 +1073,7 @@ class adminProxy extends HttpProxyController
}
} elseif ($_FILES['img']['type'] != '') {
$failed = "1";
}
}
echo '{success: true, failed: ' . $failed . ', uploaded: ' . $uploaded . ', type: "' . $_FILES['img']['type'] . '"}';
exit();
}
@@ -1130,6 +1138,7 @@ class adminProxy extends HttpProxyController
if (file_exists($dir . '/tmp' . $imgname)) {
unlink ($dir . '/tmp' . $imgname);
}
G::auditLog("DeleteLogo", "File Name: ".$imgname);
} else {
echo '{success: false}';
exit();
@@ -1182,6 +1191,8 @@ class adminProxy extends HttpProxyController
$oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', '');
G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels');
G::auditLog("ReplaceLogo", "File Name: ".$snameLogo);
break;
case 'restoreLogo':
$snameLogo = $_GET['NAMELOGO'];
@@ -1194,8 +1205,8 @@ class adminProxy extends HttpProxyController
$oConf->aConfig = $aConf;
$oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', '');
G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels');
G::auditLog("RestoreLogo", "Restore Original Logo");
break;
}
} catch (Exception $oException) {

View File

@@ -44,11 +44,12 @@ class Main extends Controller
// license notification
$expireInLabel = '';
if (class_exists( 'pmLicenseManager' )) {
$pmLicenseManager = &pmLicenseManager::getSingleton();
$expireIn = $pmLicenseManager->getExpireIn();
$expireInLabel = $pmLicenseManager->getExpireInLabel();
}
require_once ("classes" . PATH_SEP . "class.pmLicenseManager.php");
$pmLicenseManager = &pmLicenseManager::getSingleton();
$expireIn = $pmLicenseManager->getExpireIn();
$expireInLabel = $pmLicenseManager->getExpireInLabel();
$this->setVar( 'licenseNotification', $expireInLabel );
// setting variables on javascript env.

View File

@@ -410,6 +410,7 @@ class pmTablesProxy extends HttpProxyController
if ($errors == '') {
$result->success = true;
$result->message = $count.G::LoadTranslation( 'ID_TABLES_REMOVED_SUCCESSFULLY' );
G::auditLog("DeletePmtable", "Table Name: ". $table['ADD_TAB_NAME']." Table ID: (".$table['ADD_TAB_UID'].") ");
} else {
$result->success = false;
$result->message = $count. G::LoadTranslation( 'ID_TABLES_REMOVED_WITH_ERRORS' ) .$errors;
@@ -508,7 +509,7 @@ class pmTablesProxy extends HttpProxyController
if ($obj->validate()) {
$obj->save();
$toSave = true;
G::auditLog("AddDataPmtable", "Table Name: ".$table['ADD_TAB_NAME']." Table ID: (".$table['ADD_TAB_UID'].") ");
$primaryKeysValues = array ();
foreach ($primaryKeys as $primaryKey) {
$method = 'get' . AdditionalTables::getPHPName( $primaryKey['FLD_NAME'] );
@@ -527,6 +528,7 @@ class pmTablesProxy extends HttpProxyController
$toSave = false;
}
$result = new stdclass();
if ($toSave) {
$result->success = true;
$result->message = G::LoadTranslation('ID_RECORD_SAVED_SUCCESFULLY');
@@ -580,6 +582,10 @@ class pmTablesProxy extends HttpProxyController
$result = $this->_dataUpdate( $row, $primaryKeys );
}
if ($result) {
G::auditLog("UpdateDataPmtable", "Table Name: ".$table['ADD_TAB_NAME']." Table ID: (".$table['ADD_TAB_UID'].") ");
}
$this->success = $result;
$this->message = $result ? G::loadTranslation( 'ID_UPDATED_SUCCESSFULLY' ) : G::loadTranslation( 'ID_UPDATE_FAILED' );
}
@@ -604,6 +610,8 @@ class pmTablesProxy extends HttpProxyController
require_once $sPath . $this->className . '.php';
G::auditLog("DeleteDataPmtable", "Table Name: ".$table['ADD_TAB_NAME']." Table ID: (".$table['ADD_TAB_UID'].") ");
$this->success = $this->_dataDestroy( $httpData->rows );
$this->message = $this->success ? G::loadTranslation( 'ID_DELETED_SUCCESSFULLY' ) : G::loadTranslation( 'ID_DELETE_FAILED' );
}
@@ -678,6 +686,7 @@ class pmTablesProxy extends HttpProxyController
$this->success = true;
$this->message = G::loadTranslation( 'ID_FILE_IMPORTED_SUCCESSFULLY', array ($filename
) );
G::auditLog("ImportTable", $filename);
}
} else {
$sMessage = G::LoadTranslation( 'ID_UPLOAD_VALID_CSV_FILE' );
@@ -919,6 +928,7 @@ class pmTablesProxy extends HttpProxyController
// is a report table, try populate it
$additionalTable->populateReportTable( $table['ADD_TAB_NAME'], pmTable::resolveDbSource( $table['DBS_UID'] ), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'], $table['ADD_TAB_UID'] );
}
G::auditLog("ImportTable", $table['ADD_TAB_NAME']." (".$table['ADD_TAB_UID'].") ");
break;
case '@DATA':
$fstName = intval( fread( $fp, 9 ) );
@@ -1104,6 +1114,7 @@ class pmTablesProxy extends HttpProxyController
$bytesSaved += fwrite( $fp, $fsData ); //writing the size of xml file
$bytesSaved += fwrite( $fp, $SDATA ); //writing the xmlfile
}
G::auditLog("ExportTable", $table->ADD_TAB_NAME." (".$table->ADD_TAB_UID.") ");
}
fclose( $fp );

View File

@@ -4770,7 +4770,7 @@ SELECT 'LABEL','ID_PLEASE_SELECT_PHOTO','en','Please select a photo','2014-01-15
UNION ALL
SELECT 'LABEL','ID_RESUME','en','Resume','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_USER_ID','en','User ID (*)','2014-01-15'
SELECT 'LABEL','ID_USER_ID','en','Username','2014-10-09'
UNION ALL
SELECT 'LABEL','ID_PHONE','en','Phone','2014-01-15'
UNION ALL
@@ -5572,7 +5572,7 @@ SELECT 'LABEL','ID_FAILED_DASHBOARD INSTANCE','en','Dashboard Instance registere
UNION ALL
SELECT 'LABEL','ID_AJAX_COMMUNICATION_FAILED','en','Ajax communication failed','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_CHECK_FIELDS_MARK_RED','en','Please check the fields mark in red.','2014-01-15'
SELECT 'LABEL','ID_CHECK_FIELDS_MARK_RED','en','Please check the fields marked in red.','2014-10-06'
UNION ALL
SELECT 'LABEL','ID_INPUT_ERROR','en','Input Error','2014-01-15'
UNION ALL
@@ -5840,7 +5840,7 @@ SELECT 'LABEL','ID_LOGIN_WITH_FACEBOOK','en','Login with Facebook!!','2014-01-15
UNION ALL
SELECT 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP6','en','xxx','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_SIZE_VERY_LARGE_PERMITTED','en','The size is very large as permitted!','2014-09-10'
SELECT 'LABEL','ID_SIZE_VERY_LARGE_PERMITTED','en','The file is too large . Please upload a smaller file.','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP5','en','ProcessMaker uses workspaces to store data. Please enter a valid workspace name and credentials to login.','2014-09-02'
UNION ALL
@@ -6240,7 +6240,7 @@ SELECT 'LABEL','ID_MSG_ENABLE_HTML_EDITING','en','<b>Warning:</b> Editing the HT
UNION ALL
SELECT 'LABEL','ID_ALL_CATEGORIES','en','All Categories','2014-01-15'
UNION ALL
SELECT 'LABEL','ID_CASES_NOTES_NO_PERMISSIONS','en','You do not have permission to cases notes','2014-01-15'
SELECT 'LABEL','ID_CASES_NOTES_NO_PERMISSIONS','en','You do not have permission to access cases notes','2014-09-30'
UNION ALL
SELECT 'LABEL','ID_DELETE_DOCUMENT','en','Do you want to delete selected document?','2014-01-15'
UNION ALL
@@ -6938,7 +6938,7 @@ SELECT 'LABEL','ID_CHOOSE_PROVIDER','en','Please select provider','2014-08-27'
UNION ALL
SELECT 'LABEL','ID_INDEX','en','Index','2014-09-10'
UNION ALL
SELECT 'LABEL','ID_ERROR_JS_NOT_AVAILABLE','en','Your browser does not support javascript or it is disabled, please use a different browser or activate the javascript. Forms won''t work totally because javascript is used.','2014-08-29'
SELECT 'LABEL','ID_ERROR_JS_NOT_AVAILABLE','en','Your browser doesn''t support JavaScript or it may be disabled. Please use a different browser or enable the JavaScript, Dynaforms won''t entirely work because JavaScript is used.','2014-10-09'
UNION ALL
SELECT 'LABEL','ID_MAXIMUM_SIZE_FILE_REQUIRED','en','The maximum size file, is required!','2014-09-12'
UNION ALL
@@ -7088,9 +7088,9 @@ SELECT 'LABEL','ID_AUDIT_LOG_ENABLED','en','Audit Log has been enabled','2014-09
UNION ALL
SELECT 'LABEL','ID_AUDIT_LOG_DISABLED','en','Audit Log has been disabled','2014-09-19'
UNION ALL
SELECT 'LABEL','ID_AUDIT_LOG_DETAILS_1','en','Audit Log details1','2014-09-19'
SELECT 'LABEL','ID_AUDIT_LOG_DETAILS_1','en','When this option is enabled, all changes made in the "ADMIN" tab are registered in a log.','2014-09-30'
UNION ALL
SELECT 'LABEL','ID_AUDIT_LOG_DETAILS_2','en','Audit Log details 2','2014-09-19'
SELECT 'LABEL','ID_AUDIT_LOG_DETAILS_2','en','and the user will be able to see those changes in the "Audit Log" option in Logs Menu','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_PRIVATE','en','Private','2014-09-22'
UNION ALL
@@ -7103,6 +7103,170 @@ SELECT 'LABEL','ID_LEFT','en','left','2014-09-18'
SELECT 'LABEL','ID_CENTER','en','center','2014-09-18'
UNION ALL
SELECT 'LABEL','ID_RIGHT','en','right','2014-09-18'
UNION ALL
SELECT 'LABEL','ID_LANGUAGE_CANT_DELETE_CURRENTLY','en','The language, which the system is currently using, cannot be deleted.','2014-09-25'
UNION ALL
SELECT 'LABEL','ID_INPUT_DOC_MAX_FILESIZE_REQUIRED','en','Maximum file size parameter is required.','2014-09-30'
UNION ALL
SELECT 'LABEL','ID_AUDIT_LOG_ACTIONS','en','Audit Log Actions','2014-09-30'
UNION ALL
SELECT 'LABEL','ID_RESET_FILTERS','en','Reset Filters','2014-10-07'
UNION ALL
SELECT 'LABEL','ID_INPUT_DB','en','Input','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_TRIGGER_DB','en','Trigger','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_IP','en','IP Client','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_OUTPUT_DB','en','Output','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_ATTACHED_DB','en','Attached','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_DERIVATION_DB','en','Derivation','2014-10-08'
UNION ALL
SELECT 'LABEL','ID_OPEN_DYNAFORM_TAB','en','Open the Dynaform in a new tab','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ENTERPRISE_FEATURES','en','Enterprise features','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_USER','en','Create User','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_USER','en','Update User','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_USER','en','Delete User','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ENABLE_USER','en','Enable User','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DISABLE_USER','en','Disable User','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ASSIGN_AUTHENTICATION_SOURCE','en','Assign Authentication Source','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ASSIGN_USER_TO_GROUP','en','Assign Users To Group','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_AUTH_SOURCE','en','Create Authentication Source','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_UPDATE_AUTH_SOURCE','en','Update Authentication Source','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_DELETE_AUTH_SOURCE','en','Delete Authentication Source','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_UPDATE_ROLE','en','Update Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_ROLE','en','Delete Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ASSIGN_USER_TO_ROLE','en','Assign Users To Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_USER_TO_ROLE','en','Delete Users To Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ADD_PERMISSION_TO_ROLE','en','Add Permission To Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_PERMISSION_TO_ROLE','en','Delete Permission To Role','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_SKIN','en','Create Skin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_IMPORT_SKIN','en','Import Skin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_EXPORT_SKIN','en','Export Skin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_SKIN','en','Delete Skin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_GROUP','en','Update Group','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_CATEGORY','en','Create Category','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_CATEGORY','en','Update Category','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_CATEGORY','en','Delete Category','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_BUILD_CACHE','en','Build Cache','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CLEAR_CRON','en','Clear Cron','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_REPLACE_LOGO','en','Replace Logo','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_UPDATE_LOGIN_SETTINGS','en','Update Login Settings','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DISABLE_HEART_BEAT','en','Disable Heart Beat','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_PMTABLE','en','Create PM Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_PMTABLE','en','Update PM Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_PMTABLE','en','Delete PM Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ADD_DATA_PMTABLE','en','Add Data to PM table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_DATA_PMTABLE','en','Update Data from PM Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_DATA_PMTABLE','en','Delete Data from PM Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_IMPORT_TABLE','en','Import Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_EXPORT_TABLE','en','Export Table','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_CALENDAR','en','Create Calendar','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_CALENDAR','en','Update Calendar','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_CALENDAR','en','Delete Calendar','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_DASHLET_INSTANCE','en','Create Dashlet Instance','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_DASHLET_INSTANCE','en','Update Dashlet Instance','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_DASHLET_INSTANCE','en','Delete Dashlet Instance','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_DEPARTAMENT','en','Create Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_SUB_DEPARTAMENT','en','Create Sub Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_DEPARTAMENT','en','Update Departament','2014-10-10'
;
INSERT INTO [TRANSLATION] ([TRN_CATEGORY],[TRN_ID],[TRN_LANG],[TRN_VALUE],[TRN_UPDATE_DATE])
SELECT 'LABEL','ID_UPDATE_SUB_DEPARTAMENT','en','Update Sub Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_DEPARTAMENT','en','Delete Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ASSIGN_MANAGER_TO_DEPARTAMENT','en','Assign Manager To Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_ASSIGN_USER_TO_DEPARTAMENT','en','Assign Users To Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_REMOVE_USERS_FROM_DEPARTAMENT','en','Remove Users From Departament','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPLOAD_LANGUAGE','en','Upload Language','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_EXPORT_LANGUAGE','en','Export Language','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_LAGUAGE','en','Delete Language','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPLOAD_SYSTEM_SETTINGS','en','Upload System Settings','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPDATE_EMAIL_SETTINGS','en','Update Email Settings','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_EMAIL_SETTINGS','en','Create Email Settings','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_UPLOAD_LOGO','en','Upload Logo','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DELETE_LOGO','en','Delete Logo','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_INSTALL_PLUGIN','en','Install Plugin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_SET_COLUMNS','en','Set Columns','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_DISABLE_AUDIT_LOG','en','Disable Audit Log','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_REMOVE_PLUGIN','en','Remove Plugin','2014-10-10'
UNION ALL
SELECT 'LABEL','ID_CREATE_ROLE','en','Create New Role','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_CREATE_GROUP','en','Create New Group','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_DELETE_GROUP','en','Remove Group','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_DISABLE_PLUGIN','en','Disable Plugin','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_ENABLE_PLUGIN','en','Enable Plugin','2014-10-13'
UNION ALL
SELECT 'LABEL','ID_UPDATE_ENVIRONMENT_SETTINGS','en','Update Environment Settings','2014-10-13'
;
INSERT INTO ISO_LOCATION ([IC_UID],[IL_UID],[IL_NAME],[IL_NORMAL_NAME],[IS_UID])

View File

@@ -3100,7 +3100,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_PROFILE','en','Profile','2014-01-15') ,
( 'LABEL','ID_PLEASE_SELECT_PHOTO','en','Please select a photo','2014-01-15') ,
( 'LABEL','ID_RESUME','en','Resume','2014-01-15') ,
( 'LABEL','ID_USER_ID','en','User ID (*)','2014-01-15') ,
( 'LABEL','ID_USER_ID','en','Username','2014-10-09') ,
( 'LABEL','ID_PHONE','en','Phone','2014-01-15') ,
( 'LABEL','ID_NEW_PASSWORD','en','New Password','2014-01-15') ,
( 'LABEL','ID_CONFIRM_PASSWORD','en','Confirm Password','2014-01-15') ,
@@ -3506,7 +3506,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_INVALID_DATA','en','Invalid data','2014-01-15') ,
( 'LABEL','ID_FAILED_DASHBOARD INSTANCE','en','Dashboard Instance registered failed','2014-01-15') ,
( 'LABEL','ID_AJAX_COMMUNICATION_FAILED','en','Ajax communication failed','2014-01-15') ,
( 'LABEL','ID_CHECK_FIELDS_MARK_RED','en','Please check the fields mark in red.','2014-01-15') ,
( 'LABEL','ID_CHECK_FIELDS_MARK_RED','en','Please check the fields marked in red.','2014-10-06') ,
( 'LABEL','ID_INPUT_ERROR','en','Input Error','2014-01-15') ,
( 'LABEL','ID_INVALID_APPLICATION_NUMBER','en','You have set a invalid Application Number','2014-01-15') ,
( 'LABEL','ID_3DAYSMINIMUM','en','3 days at least','2014-01-15') ,
@@ -3642,7 +3642,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_COPYRIGHT','en','Copyright © 2003-2011 Colosa, Inc. All rights reserved.','2014-01-15') ,
( 'LABEL','ID_LOGIN_WITH_FACEBOOK','en','Login with Facebook!!','2014-01-15') ,
( 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP6','en','xxx','2014-01-15') ,
( 'LABEL','ID_SIZE_VERY_LARGE_PERMITTED','en','The size is very large as permitted!','2014-09-10') ,
( 'LABEL','ID_SIZE_VERY_LARGE_PERMITTED','en','The file is too large . Please upload a smaller file.','2014-10-08') ,
( 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP5','en','ProcessMaker uses workspaces to store data. Please enter a valid workspace name and credentials to login.','2014-09-02') ,
( 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP4_2','en','If you are installing ProcessMaker on a remote web server, you will need to get this information from your Database Server.','2014-01-15') ,
( 'LABEL','ID_PROCESSMAKER_REQUIREMENTS_DESCRIPTION_STEP4_1','en','ProcessMaker stores all of its data in a database. This screen gives the installation program the information needed to create this database.','2014-01-15') ,
@@ -3844,7 +3844,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_REFRESH_TIME_SECONDS','en','Refresh Time (seconds)','2014-01-15') ,
( 'LABEL','ID_MSG_ENABLE_HTML_EDITING','en','<b>Warning:</b> Editing the HTML prevents fields from being added or moved, so only edit the HTML after creating all the fields. Do you like to continue anyway?','2014-01-15') ,
( 'LABEL','ID_ALL_CATEGORIES','en','All Categories','2014-01-15') ,
( 'LABEL','ID_CASES_NOTES_NO_PERMISSIONS','en','You do not have permission to cases notes','2014-01-15') ,
( 'LABEL','ID_CASES_NOTES_NO_PERMISSIONS','en','You do not have permission to access cases notes','2014-09-30') ,
( 'LABEL','ID_DELETE_DOCUMENT','en','Do you want to delete selected document?','2014-01-15') ,
( 'LABEL','ID_CRON_ACTIONS_LOG','en','Cron Actions Log','2014-01-15') ,
( 'LABEL','ID_AUTH_SOURCE_MISSING','en','The plugin that is related to this authentication source was removed or disabled, please consult to your system administrator.','2014-01-15') ;
@@ -4198,7 +4198,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_TINY_SYSTEM_VARIABLE','en','System Variable','2014-08-27') ,
( 'LABEL','ID_CHOOSE_PROVIDER','en','Please select provider','2014-08-27') ,
( 'LABEL','ID_INDEX','en','Index','2014-09-10') ,
( 'LABEL','ID_ERROR_JS_NOT_AVAILABLE','en','Your browser does not support javascript or it is disabled, please use a different browser or activate the javascript. Forms won''t work totally because javascript is used.','2014-08-29') ,
( 'LABEL','ID_ERROR_JS_NOT_AVAILABLE','en','Your browser doesn''t support JavaScript or it may be disabled. Please use a different browser or enable the JavaScript, Dynaforms won''t entirely work because JavaScript is used.','2014-10-09') ,
( 'LABEL','ID_MAXIMUM_SIZE_FILE_REQUIRED','en','The maximum size file, is required!','2014-09-12') ,
( 'LABEL','ID_BEFORE_UPDATE','en','Before Upgrade','2014-09-18') ,
( 'LABEL','ID_WAIT_INSTALLING_PLUGIN','en','Please wait while installing the plugin...','2014-09-18') ,
@@ -4274,14 +4274,97 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_ENABLE_AUDIT_LOG','en','Enable Audit Log','2014-09-19') ,
( 'LABEL','ID_AUDIT_LOG_ENABLED','en','Audit Log has been enabled','2014-09-19') ,
( 'LABEL','ID_AUDIT_LOG_DISABLED','en','Audit Log has been disabled','2014-09-19') ,
( 'LABEL','ID_AUDIT_LOG_DETAILS_1','en','Audit Log details1','2014-09-19') ,
( 'LABEL','ID_AUDIT_LOG_DETAILS_2','en','Audit Log details 2','2014-09-19') ,
( 'LABEL','ID_AUDIT_LOG_DETAILS_1','en','When this option is enabled, all changes made in the "ADMIN" tab are registered in a log.','2014-09-30') ,
( 'LABEL','ID_AUDIT_LOG_DETAILS_2','en','and the user will be able to see those changes in the "Audit Log" option in Logs Menu','2014-10-10') ,
( 'LABEL','ID_PRIVATE','en','Private','2014-09-22') ,
( 'LABEL','ID_CASES_LIST','en','Cases Lists','2014-09-18') ,
( 'LABEL','ID_MENU_NAME','en','Enterprise Plugins Manager','2014-09-18') ,
( 'LABEL','ID_LEFT','en','left','2014-09-18') ,
( 'LABEL','ID_CENTER','en','center','2014-09-18') ,
( 'LABEL','ID_RIGHT','en','right','2014-09-18') ;
( 'LABEL','ID_RIGHT','en','right','2014-09-18') ,
( 'LABEL','ID_LANGUAGE_CANT_DELETE_CURRENTLY','en','The language, which the system is currently using, cannot be deleted.','2014-09-25') ,
( 'LABEL','ID_INPUT_DOC_MAX_FILESIZE_REQUIRED','en','Maximum file size parameter is required.','2014-09-30') ,
( 'LABEL','ID_AUDIT_LOG_ACTIONS','en','Audit Log Actions','2014-09-30') ,
( 'LABEL','ID_RESET_FILTERS','en','Reset Filters','2014-10-07') ,
( 'LABEL','ID_INPUT_DB','en','Input','2014-10-08') ,
( 'LABEL','ID_TRIGGER_DB','en','Trigger','2014-10-08') ,
( 'LABEL','ID_IP','en','IP Client','2014-10-08') ,
( 'LABEL','ID_OUTPUT_DB','en','Output','2014-10-08') ,
( 'LABEL','ID_ATTACHED_DB','en','Attached','2014-10-08') ,
( 'LABEL','ID_DERIVATION_DB','en','Derivation','2014-10-08') ,
( 'LABEL','ID_OPEN_DYNAFORM_TAB','en','Open the Dynaform in a new tab','2014-10-10') ,
( 'LABEL','ID_ENTERPRISE_FEATURES','en','Enterprise features','2014-10-10') ,
( 'LABEL','ID_CREATE_USER','en','Create User','2014-10-10') ,
( 'LABEL','ID_UPDATE_USER','en','Update User','2014-10-10') ,
( 'LABEL','ID_DELETE_USER','en','Delete User','2014-10-10') ,
( 'LABEL','ID_ENABLE_USER','en','Enable User','2014-10-10') ,
( 'LABEL','ID_DISABLE_USER','en','Disable User','2014-10-10') ,
( 'LABEL','ID_ASSIGN_AUTHENTICATION_SOURCE','en','Assign Authentication Source','2014-10-10') ,
( 'LABEL','ID_ASSIGN_USER_TO_GROUP','en','Assign Users To Group','2014-10-10') ,
( 'LABEL','ID_CREATE_AUTH_SOURCE','en','Create Authentication Source','2014-10-13') ,
( 'LABEL','ID_UPDATE_AUTH_SOURCE','en','Update Authentication Source','2014-10-13') ,
( 'LABEL','ID_DELETE_AUTH_SOURCE','en','Delete Authentication Source','2014-10-13') ,
( 'LABEL','ID_UPDATE_ROLE','en','Update Role','2014-10-10') ,
( 'LABEL','ID_DELETE_ROLE','en','Delete Role','2014-10-10') ,
( 'LABEL','ID_ASSIGN_USER_TO_ROLE','en','Assign Users To Role','2014-10-10') ,
( 'LABEL','ID_DELETE_USER_TO_ROLE','en','Delete Users To Role','2014-10-10') ,
( 'LABEL','ID_ADD_PERMISSION_TO_ROLE','en','Add Permission To Role','2014-10-10') ,
( 'LABEL','ID_DELETE_PERMISSION_TO_ROLE','en','Delete Permission To Role','2014-10-10') ,
( 'LABEL','ID_CREATE_SKIN','en','Create Skin','2014-10-10') ,
( 'LABEL','ID_IMPORT_SKIN','en','Import Skin','2014-10-10') ,
( 'LABEL','ID_EXPORT_SKIN','en','Export Skin','2014-10-10') ,
( 'LABEL','ID_DELETE_SKIN','en','Delete Skin','2014-10-10') ,
( 'LABEL','ID_UPDATE_GROUP','en','Update Group','2014-10-10') ,
( 'LABEL','ID_CREATE_CATEGORY','en','Create Category','2014-10-10') ,
( 'LABEL','ID_UPDATE_CATEGORY','en','Update Category','2014-10-10') ,
( 'LABEL','ID_DELETE_CATEGORY','en','Delete Category','2014-10-10') ,
( 'LABEL','ID_BUILD_CACHE','en','Build Cache','2014-10-10') ,
( 'LABEL','ID_CLEAR_CRON','en','Clear Cron','2014-10-10') ,
( 'LABEL','ID_REPLACE_LOGO','en','Replace Logo','2014-10-13') ,
( 'LABEL','ID_UPDATE_LOGIN_SETTINGS','en','Update Login Settings','2014-10-10') ,
( 'LABEL','ID_DISABLE_HEART_BEAT','en','Disable Heart Beat','2014-10-10') ,
( 'LABEL','ID_CREATE_PMTABLE','en','Create PM Table','2014-10-10') ,
( 'LABEL','ID_UPDATE_PMTABLE','en','Update PM Table','2014-10-10') ,
( 'LABEL','ID_DELETE_PMTABLE','en','Delete PM Table','2014-10-10') ,
( 'LABEL','ID_ADD_DATA_PMTABLE','en','Add Data to PM table','2014-10-10') ,
( 'LABEL','ID_UPDATE_DATA_PMTABLE','en','Update Data from PM Table','2014-10-10') ,
( 'LABEL','ID_DELETE_DATA_PMTABLE','en','Delete Data from PM Table','2014-10-10') ,
( 'LABEL','ID_IMPORT_TABLE','en','Import Table','2014-10-10') ,
( 'LABEL','ID_EXPORT_TABLE','en','Export Table','2014-10-10') ,
( 'LABEL','ID_CREATE_CALENDAR','en','Create Calendar','2014-10-10') ,
( 'LABEL','ID_UPDATE_CALENDAR','en','Update Calendar','2014-10-10') ,
( 'LABEL','ID_DELETE_CALENDAR','en','Delete Calendar','2014-10-10') ,
( 'LABEL','ID_CREATE_DASHLET_INSTANCE','en','Create Dashlet Instance','2014-10-10') ,
( 'LABEL','ID_UPDATE_DASHLET_INSTANCE','en','Update Dashlet Instance','2014-10-10') ,
( 'LABEL','ID_DELETE_DASHLET_INSTANCE','en','Delete Dashlet Instance','2014-10-10') ,
( 'LABEL','ID_CREATE_DEPARTAMENT','en','Create Departament','2014-10-10') ,
( 'LABEL','ID_CREATE_SUB_DEPARTAMENT','en','Create Sub Departament','2014-10-10') ,
( 'LABEL','ID_UPDATE_DEPARTAMENT','en','Update Departament','2014-10-10') ;
INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ) VALUES
( 'LABEL','ID_UPDATE_SUB_DEPARTAMENT','en','Update Sub Departament','2014-10-10') ,
( 'LABEL','ID_DELETE_DEPARTAMENT','en','Delete Departament','2014-10-10') ,
( 'LABEL','ID_ASSIGN_MANAGER_TO_DEPARTAMENT','en','Assign Manager To Departament','2014-10-10') ,
( 'LABEL','ID_ASSIGN_USER_TO_DEPARTAMENT','en','Assign Users To Departament','2014-10-10') ,
( 'LABEL','ID_REMOVE_USERS_FROM_DEPARTAMENT','en','Remove Users From Departament','2014-10-10') ,
( 'LABEL','ID_UPLOAD_LANGUAGE','en','Upload Language','2014-10-10') ,
( 'LABEL','ID_EXPORT_LANGUAGE','en','Export Language','2014-10-10') ,
( 'LABEL','ID_DELETE_LAGUAGE','en','Delete Language','2014-10-10') ,
( 'LABEL','ID_UPLOAD_SYSTEM_SETTINGS','en','Upload System Settings','2014-10-10') ,
( 'LABEL','ID_UPDATE_EMAIL_SETTINGS','en','Update Email Settings','2014-10-10') ,
( 'LABEL','ID_CREATE_EMAIL_SETTINGS','en','Create Email Settings','2014-10-10') ,
( 'LABEL','ID_UPLOAD_LOGO','en','Upload Logo','2014-10-10') ,
( 'LABEL','ID_DELETE_LOGO','en','Delete Logo','2014-10-10') ,
( 'LABEL','ID_INSTALL_PLUGIN','en','Install Plugin','2014-10-10') ,
( 'LABEL','ID_SET_COLUMNS','en','Set Columns','2014-10-10') ,
( 'LABEL','ID_DISABLE_AUDIT_LOG','en','Disable Audit Log','2014-10-10') ,
( 'LABEL','ID_REMOVE_PLUGIN','en','Remove Plugin','2014-10-10') ,
( 'LABEL','ID_CREATE_ROLE','en','Create New Role','2014-10-13') ,
( 'LABEL','ID_CREATE_GROUP','en','Create New Group','2014-10-13') ,
( 'LABEL','ID_DELETE_GROUP','en','Remove Group','2014-10-13') ,
( 'LABEL','ID_DISABLE_PLUGIN','en','Disable Plugin','2014-10-13') ,
( 'LABEL','ID_ENABLE_PLUGIN','en','Enable Plugin','2014-10-13') ,
( 'LABEL','ID_UPDATE_ENVIRONMENT_SETTINGS','en','Update Environment Settings','2014-10-13') ;
INSERT INTO ISO_LOCATION (IC_UID,IL_UID,IL_NAME,IL_NORMAL_NAME,IS_UID) VALUES
('AD','','',' ','') ,

View File

@@ -2119,7 +2119,7 @@ CREATE TABLE `ADDONS_STORE`
`STORE_TYPE` VARCHAR(255) NOT NULL,
`STORE_LAST_UPDATED` DATETIME,
PRIMARY KEY (`STORE_ID`)
)ENGINE=MyISAM ;
)ENGINE=InnoDB ;
#-----------------------------------------------------------------------------
#-- ADDONS_MANAGER
@@ -2147,7 +2147,7 @@ CREATE TABLE `ADDONS_MANAGER`
`ADDON_DOWNLOAD_PROGRESS` FLOAT,
`ADDON_DOWNLOAD_MD5` VARCHAR(32),
PRIMARY KEY (`ADDON_ID`,`STORE_ID`)
)ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Addons manager';
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Addons manager';
#-----------------------------------------------------------------------------
@@ -2167,4 +2167,4 @@ CREATE TABLE IF NOT EXISTS `LICENSE_MANAGER` (
`LICENSE_WORKSPACE` varchar(32) NOT NULL DEFAULT '0',
`LICENSE_TYPE` varchar(32) NOT NULL DEFAULT '0',
PRIMARY KEY (`LICENSE_UID`)
)ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Licenses Manager';
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Licenses Manager';

View File

@@ -26,6 +26,10 @@ global $G_TMP_MENU;
global $RBAC;
$partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false;
$oServerConf = & serverConf::getSingleton();
$sAudit = $oServerConf->getAuditLogProperty( 'AL_OPTION', SYS_SYS );
$licensedFeatures = & PMLicensedFeatures::getSingleton();
if ($RBAC->userCanAccess('PM_SETUP') == 1 ) {
//settings options
// $G_TMP_MENU->AddIdRawOption('LOGO', 'uplogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png', '', 'settings');
@@ -95,12 +99,18 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) {
$G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_CASE_SCHEDULER'), "icon-logs-list.png",'', 'logs');
$G_TMP_MENU->AddIdRawOption("CRON", "../setup/cron", G::LoadTranslation("ID_CRON_ACTIONS"), null, null, "logs");
$G_TMP_MENU->AddIdRawOption('EMAILS', '../mails/emailList', ucfirst (strtolower ( G::LoadTranslation('ID_EMAILS'))), '', '', 'logs');
if (isset($sAudit) && $sAudit != false && $licensedFeatures->verifyfeature('vtSeHNhT0JnSmo1bTluUVlTYUxUbUFSVStEeXVqc1pEUG5EeXc0MGd2Q3ErYz0=')) {
$G_TMP_MENU->AddIdRawOption('AUDIT_LOG', '../setup/auditLog', ucfirst (G::LoadTranslation('ID_AUDITLOG_DISPLAY')), '', '', 'logs');
}
}
if ($RBAC->userCanAccess("PM_SETUP") == 1) {
$G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings");
$G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings");
//$G_TMP_MENU->AddIdRawOption("PHP_MAINTENANCE", "../admin/maintenance", 'Maintenance', "", "", "settings");
if ($licensedFeatures->verifyfeature('vtSeHNhT0JnSmo1bTluUVlTYUxUbUFSVStEeXVqc1pEUG5EeXc0MGd2Q3ErYz0=')) {
$G_TMP_MENU->AddIdRawOption("AUDIT_LOG", "auditLogConfig", G::LoadTranslation("ID_AUDITLOG_DISPLAY"), "", "", "settings");
}
}
require_once 'classes/class.pmLicenseManager.php';

View File

@@ -22,6 +22,11 @@
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
$arrayToTranslation = array(
"TRIGGER" => G::LoadTranslation("ID_TRIGGER_DB"),
"DERIVATION" => G::LoadTranslation("ID_DERIVATION_DB")
);
$actionAjax = isset( $_REQUEST['actionAjax'] ) ? $_REQUEST['actionAjax'] : null;
if ($actionAjax == 'messageHistoryGridList_JXP') {
@@ -110,6 +115,8 @@ if ($actionAjax == 'messageHistoryGridList_JXP') {
$r->data = $aProcesses;
$r->totalCount = $totalCount;
$r->data[0]["APP_MSG_TYPE"] = (array_key_exists($r->data[0]["APP_MSG_TYPE"], $arrayToTranslation))? $arrayToTranslation[$r->data[0]["APP_MSG_TYPE"]] : $r->data[0]["APP_MSG_TYPE"];
echo G::json_encode( $r );
}
if ($actionAjax == 'showHistoryMessage') {

View File

@@ -533,6 +533,12 @@ switch (($_POST['action']) ? $_POST['action'] : $_REQUEST['action']) {
G::LoadClass( "BasePeer" );
global $G_PUBLISH;
$arrayToTranslation = array(
"INPUT" => G::LoadTranslation("ID_INPUT_DB"),
"OUTPUT" => G::LoadTranslation("ID_OUTPUT_DB"),
"ATTACHED" => G::LoadTranslation("ID_ATTACHED_DB")
);
$oCase = new Cases();
$aProcesses = Array ();
$G_PUBLISH = new Publisher();
@@ -551,6 +557,7 @@ switch (($_POST['action']) ? $_POST['action'] : $_REQUEST['action']) {
for ($j = 0; $j < $rs->getRecordCount(); $j ++) {
$result = $rs->getRow();
$result["TYPE"] = (array_key_exists($result["TYPE"], $arrayToTranslation))? $arrayToTranslation[$result["TYPE"]] : $result["TYPE"];
$aProcesses[] = $result;
$rs->next();
$totalCount ++;
@@ -929,6 +936,17 @@ switch (($_POST['action']) ? $_POST['action'] : $_REQUEST['action']) {
$Fields['APP_DOC_UID'] = $_POST['appDocId'];
$Fields['actionType'] = $_POST['actionType'];
$Fields['docVersion'] = $_POST['docVersion'];
$oInputDocument = new InputDocument();
$InpDocData = $oInputDocument->load( $Fields['DOC_UID'] );
$inpDocMaxFilesize = $InpDocData["INP_DOC_MAX_FILESIZE"];
$inpDocMaxFilesizeUnit = $InpDocData["INP_DOC_MAX_FILESIZE_UNIT"];
$inpDocMaxFilesize = $inpDocMaxFilesize * (($inpDocMaxFilesizeUnit == "MB")? 1024 *1024 : 1024); //Bytes
$Fields["INP_DOC_MAX_FILESIZE"] = $inpDocMaxFilesize;
$Fields["INP_DOC_MAX_FILESIZE_LABEL"] = ($inpDocMaxFilesize > 0)? "[" . $InpDocData["INP_DOC_MAX_FILESIZE"] . " " . $InpDocData["INP_DOC_MAX_FILESIZE_UNIT"] . "]" : "";
$Fields['fileTypes'] = $InpDocData['INP_DOC_TYPE_FILE'];
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_AttachInputDocumentGeneral', '', $Fields, 'cases_SupervisorSaveDocument?UID=' . $_POST['docID'] . '&APP_UID=' . $_POST['appDocId'] );
G::RenderPage( 'publish', 'raw' );
break;

View File

@@ -49,6 +49,149 @@ $aData['APP_STATUS'] = $Fields['APP_STATUS'];
$oCase->updateCase( $_SESSION['APPLICATION'], $aData );
G::SendTemporalMessage( 'ID_SAVED_SUCCESSFULLY', 'info' );
//Save files
if (isset( $_FILES["form"]["name"] ) && count( $_FILES["form"]["name"] ) > 0) {
$arrayField = array ();
$arrayFileName = array ();
$arrayFileTmpName = array ();
$arrayFileError = array ();
$i = 0;
foreach ($_FILES["form"]["name"] as $fieldIndex => $fieldValue) {
if (is_array( $fieldValue )) {
foreach ($fieldValue as $index => $value) {
if (is_array( $value )) {
foreach ($value as $grdFieldIndex => $grdFieldValue) {
$arrayField[$i]["grdName"] = $fieldIndex;
$arrayField[$i]["grdFieldName"] = $grdFieldIndex;
$arrayField[$i]["index"] = $index;
$arrayFileName[$i] = $_FILES["form"]["name"][$fieldIndex][$index][$grdFieldIndex];
$arrayFileTmpName[$i] = $_FILES["form"]["tmp_name"][$fieldIndex][$index][$grdFieldIndex];
$arrayFileError[$i] = $_FILES["form"]["error"][$fieldIndex][$index][$grdFieldIndex];
$i = $i + 1;
}
}
}
} else {
$arrayField[$i] = $fieldIndex;
$arrayFileName[$i] = $_FILES["form"]["name"][$fieldIndex];
$arrayFileTmpName[$i] = $_FILES["form"]["tmp_name"][$fieldIndex];
$arrayFileError[$i] = $_FILES["form"]["error"][$fieldIndex];
$i = $i + 1;
}
}
if (count( $arrayField ) > 0) {
for ($i = 0; $i <= count( $arrayField ) - 1; $i ++) {
if ($arrayFileError[$i] == 0) {
$indocUid = null;
$fieldName = null;
$fileSizeByField = 0;
if (is_array( $arrayField[$i] )) {
if (isset( $_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]] ) && ! empty( $_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]] )) {
$indocUid = $_POST["INPUTS"][$arrayField[$i]["grdName"]][$arrayField[$i]["grdFieldName"]];
}
$fieldName = $arrayField[$i]["grdName"] . "_" . $arrayField[$i]["index"] . "_" . $arrayField[$i]["grdFieldName"];
if (isset($_FILES["form"]["size"][$arrayField[$i]["grdName"]][$arrayField[$i]["index"]][$arrayField[$i]["grdFieldName"]])) {
$fileSizeByField = $_FILES["form"]["size"][$arrayField[$i]["grdName"]][$arrayField[$i]["index"]][$arrayField[$i]["grdFieldName"]];
}
} else {
if (isset( $_POST["INPUTS"][$arrayField[$i]] ) && ! empty( $_POST["INPUTS"][$arrayField[$i]] )) {
$indocUid = $_POST["INPUTS"][$arrayField[$i]];
}
$fieldName = $arrayField[$i];
if (isset($_FILES["form"]["size"][$fieldName])) {
$fileSizeByField = $_FILES["form"]["size"][$fieldName];
}
}
if ($indocUid != null) {
//require_once ("classes/model/AppFolder.php");
//require_once ("classes/model/InputDocument.php");
$oInputDocument = new InputDocument();
$aID = $oInputDocument->load( $indocUid );
//Get the Custom Folder ID (create if necessary)
$oFolder = new AppFolder();
//***Validating the file allowed extensions***
$res = G::verifyInputDocExtension($aID['INP_DOC_TYPE_FILE'], $arrayFileName[$i], $arrayFileTmpName[$i]);
if($res->status == 0){
$message = $res->message;
G::SendMessageText( $message, "ERROR" );
$backUrlObj = explode( "sys" . SYS_SYS, $_SERVER['HTTP_REFERER'] );
G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
die();
}
//--- Validate Filesize of $_FILE
$inpDocMaxFilesize = $aID["INP_DOC_MAX_FILESIZE"];
$inpDocMaxFilesizeUnit = $aID["INP_DOC_MAX_FILESIZE_UNIT"];
$inpDocMaxFilesize = $inpDocMaxFilesize * (($inpDocMaxFilesizeUnit == "MB")? 1024 *1024 : 1024); //Bytes
if ($inpDocMaxFilesize > 0 && $fileSizeByField > 0) {
if ($fileSizeByField > $inpDocMaxFilesize) {
G::SendMessageText(G::LoadTranslation("ID_SIZE_VERY_LARGE_PERMITTED"), "ERROR");
$arrayAux1 = explode("sys" . SYS_SYS, $_SERVER["HTTP_REFERER"]);
G::header("location: /sys" . SYS_SYS . $arrayAux1[1]);
exit(0);
}
}
$aFields = array ("APP_UID" => $_SESSION["APPLICATION"],"DEL_INDEX" => $_SESSION["INDEX"],"USR_UID" => $_SESSION["USER_LOGGED"],"DOC_UID" => $indocUid,"APP_DOC_TYPE" => "INPUT","APP_DOC_CREATE_DATE" => date( "Y-m-d H:i:s" ),"APP_DOC_COMMENT" => "","APP_DOC_TITLE" => "","APP_DOC_FILENAME" => $arrayFileName[$i],"FOLDER_UID" => $oFolder->createFromPath( $aID["INP_DOC_DESTINATION_PATH"] ),"APP_DOC_TAGS" => $oFolder->parseTags( $aID["INP_DOC_TAGS"] ),"APP_DOC_FIELDNAME" => $fieldName);
} else {
$aFields = array ("APP_UID" => $_SESSION["APPLICATION"],"DEL_INDEX" => $_SESSION["INDEX"],"USR_UID" => $_SESSION["USER_LOGGED"],"DOC_UID" => - 1,"APP_DOC_TYPE" => "ATTACHED","APP_DOC_CREATE_DATE" => date( "Y-m-d H:i:s" ),"APP_DOC_COMMENT" => "","APP_DOC_TITLE" => "","APP_DOC_FILENAME" => $arrayFileName[$i],"APP_DOC_FIELDNAME" => $fieldName);
}
$oAppDocument = new AppDocument();
$oAppDocument->create( $aFields );
$iDocVersion = $oAppDocument->getDocVersion();
$sAppDocUid = $oAppDocument->getAppDocUid();
$aInfo = pathinfo( $oAppDocument->getAppDocFilename() );
$sExtension = ((isset( $aInfo["extension"] )) ? $aInfo["extension"] : "");
$pathUID = G::getPathFromUID($_SESSION["APPLICATION"]);
$sPathName = PATH_DOCUMENT . $pathUID . PATH_SEP;
$sFileName = $sAppDocUid . "_" . $iDocVersion . "." . $sExtension;
G::uploadFile( $arrayFileTmpName[$i], $sPathName, $sFileName );
//Plugin Hook PM_UPLOAD_DOCUMENT for upload document
$oPluginRegistry = &PMPluginRegistry::getSingleton();
if ($oPluginRegistry->existsTrigger( PM_UPLOAD_DOCUMENT ) && class_exists( "uploadDocumentData" )) {
$triggerDetail = $oPluginRegistry->getTriggerInfo( PM_UPLOAD_DOCUMENT );
$documentData = new uploadDocumentData( $_SESSION["APPLICATION"], $_SESSION["USER_LOGGED"], $sPathName . $sFileName, $aFields["APP_DOC_FILENAME"], $sAppDocUid, $iDocVersion );
$uploadReturn = $oPluginRegistry->executeTriggers( PM_UPLOAD_DOCUMENT, $documentData );
if ($uploadReturn) {
$aFields["APP_DOC_PLUGIN"] = $triggerDetail->sNamespace;
if (! isset( $aFields["APP_DOC_UID"] )) {
$aFields["APP_DOC_UID"] = $sAppDocUid;
}
if (! isset( $aFields["DOC_VERSION"] )) {
$aFields["DOC_VERSION"] = $iDocVersion;
}
$oAppDocument->update( $aFields );
unlink( $sPathName . $sFileName );
}
}
}
}
}
}
//go to the next step
$aNextStep = $oCase->getNextSupervisorStep( $_SESSION['PROCESS'], $_SESSION['STEP_POSITION'] );
$_SESSION['STEP_POSITION'] = $aNextStep['POSITION'];

View File

@@ -49,7 +49,7 @@ try {
$aData['SCH_UID'] = G::generateUniqueID();
$aData['SCH_NAME'] = $_POST['form']['SCH_NAME'];
$aData['SCH_DEL_USER_NAME'] = $_POST['form']['SCH_USER_NAME'];
$aData['SCH_DEL_USER_PASS'] = md5( $_POST['form']['SCH_USER_PASSWORD'] );
$aData['SCH_DEL_USER_PASS'] = Bootstrap::hashPassword($_POST['form']['SCH_USER_PASSWORD']);
$aData['SCH_DEL_USER_UID'] = $_POST['form']['SCH_USER_UID'];
$aData['PRO_UID'] = $_POST['form']['PRO_UID'];
$aData['TAS_UID'] = $_POST['form']['TAS_UID'];

View File

@@ -54,7 +54,7 @@ try {
$aData['SCH_DEL_USER_NAME'] = $_POST['form']['SCH_USER_NAME'];
if ($_POST['form']['SCH_USER_PASSWORD'] != 'DefaultPM') {
$aData['SCH_DEL_USER_PASS'] = md5( $_POST['form']['SCH_USER_PASSWORD'] );
$aData['SCH_DEL_USER_PASS'] = Bootstrap::hashPassword($_POST['form']['SCH_USER_PASSWORD']);
}
$aData['SCH_DEL_USER_UID'] = $_POST['form']['SCH_USER_UID'];

View File

@@ -631,6 +631,27 @@ function fieldSave()
$conf->saveObject($result, "casesList", $action, "", "", "");
$msgLog = '';
if($action == 'todo') {
$list = 'Inbox';
} elseif ($action == 'sent') {
$list = 'Participated';
} else {
$list = ucwords($action);
}
for ($i=4; $i<count( $arrayNewSecond ); $i++) {
if ($i == count( $arrayNewSecond )-1) {
$msgLog .= $arrayNewSecond[$i]['label'];
} else {
$msgLog .= $arrayNewSecond[$i]['label'].'-';
}
}
G::auditLog("SetColumns", "Set ".$list." List Columns".$msgLog);
echo G::json_encode($result);
}

View File

@@ -224,6 +224,8 @@ switch ($_POST['action']) {
$dep_uid = $_REQUEST['uid'];
$dep_manager = $_REQUEST['manager'];
$dep_status = $_REQUEST['status'];
$dep_parent = $_REQUEST['parent'];
$editDepartment['DEP_PARENT'] = $dep_parent;
$editDepartment['DEP_UID'] = $dep_uid;
$editDepartment['DEPO_TITLE'] = $dep_name;
$editDepartment['DEP_STATUS'] = $dep_status;
@@ -231,6 +233,13 @@ switch ($_POST['action']) {
$oDept = new Department();
$oDept->update( $editDepartment );
$oDept->updateDepartmentManager( $dep_uid );
if ($dep_parent == '') {
G::auditLog("UpdateDepartament", "Departament Name: ".$dep_name." (".$dep_uid.") ");
} else {
G::auditLog("UpdateSubDepartament", "Sub Departament Name: ".$dep_name." (".$dep_uid.") ");
}
echo '{success: true}';
} catch (exception $e) {
echo '{success: false}';

View File

@@ -177,6 +177,13 @@ try {
}
$result["success"] = $addon->setEnabled(($action == "enable"));
if ($action == "enable") {
G::auditLog("EnablePlugin", "Plugin Name: ".$_REQUEST['addon']);
} else {
G::auditLog("DisablePlugin", "Plugin Name: ".$_REQUEST['addon']);
}
break;
case "install":
$status = 1;
@@ -340,7 +347,9 @@ try {
exit(0);
break;
case "addonslist":
$result = AddonsStore::addonList();
$type = (isset($_REQUEST['type'])) ? $_REQUEST['type']: 'plugin';
$result = AddonsStore::addonList($type);
break;
break;
default:
throw (new Exception("Action \"$action\" is not valid"));

View File

@@ -21,8 +21,8 @@ class enterprisePlugin extends PMPlugin
$VERSION = System::getVersion();
$res = parent::PMPlugin($sNamespace, $sFilename);
$this->sFriendlyName = "ProcessMaker Enterprise Edition";
$this->sDescription = "ProcessMaker Enterprise Edition $VERSION";
$this->sFriendlyName = "ProcessMaker Enterprise Core Edition";
$this->sDescription = "ProcessMaker Enterprise Core Edition $VERSION";
$this->sPluginFolder = "enterprise";
$this->sSetupPage = "../enterprise/addonsStore.php";
$this->iVersion = $VERSION;

View File

@@ -270,6 +270,7 @@ switch ($option) {
if ($result["status"] == "OK") {
$response["status"] = $result["status"]; //OK
$response["message"] = $result["message"];
G::auditLog("InstallPlugin", "Plugin Name: ".$file);
} else {
throw (new Exception($result["message"]));
}

View File

@@ -149,7 +149,10 @@ switch ($_POST['action']) {
unset( $newGroup['GRP_UID'] );
$group = new Groupwf();
$group->create( $newGroup );
G::auditLog("CreateGroup", "Group Name: ".$newGroup['GRP_TITLE']);
echo '{success: true}';
break;
case 'saveEditGroup':
G::LoadClass( 'groups' );
@@ -158,6 +161,7 @@ switch ($_POST['action']) {
$editGroup['GRP_TITLE'] = trim( $_POST['name'] );
$group = new Groupwf();
$group->update( $editGroup );
G::auditLog("UpdateGroup", "Group Name: ".$editGroup['GRP_TITLE']." Group ID: (".$_POST['grp_uid'].") ");
echo '{success: true}';
break;
case 'deleteGroup':
@@ -167,6 +171,7 @@ switch ($_POST['action']) {
return;
}
$group->remove( urldecode( $_POST['GRP_UID'] ) );
G::auditLog("DeleteGroup", "Group Name: ".$_POST['GRP_NAME']." Group ID: (".$_POST['GRP_UID'].") ");
require_once 'classes/model/TaskUser.php';
$oProcess = new TaskUser();
$oCriteria = new Criteria( 'workflow' );

View File

@@ -104,6 +104,7 @@ if (isset( $_REQUEST['action'] )) {
$pcat->setCategoryUid( G::GenerateUniqueID() );
$pcat->setCategoryName( $catName );
$pcat->save();
G::auditLog("CreateCategory", "Category Name: ".$catName);
echo '{success: true}';
} catch (Exception $ex) {
echo '{success: false, error: ' . $ex->getMessage() . '}';
@@ -134,6 +135,7 @@ if (isset( $_REQUEST['action'] )) {
$pcat->setCategoryUid( $catUID );
$pcat->setCategoryName( $catName );
$pcat->save();
g::auditLog("UpdateCategory", "Category Name: ".$catName." Category ID: (".$catUID.") ");
echo '{success: true}';
} catch (Exception $ex) {
echo '{success: false, error: ' . $ex->getMessage() . '}';
@@ -153,7 +155,9 @@ if (isset( $_REQUEST['action'] )) {
$catUID = $_REQUEST['cat_uid'];
$cat = new ProcessCategory();
$cat->setCategoryUid( $catUID );
$catName = $cat->loadByCategoryId( $catUID );
$cat->delete();
G::auditLog("DeleteCategory", "Category Name: ".$catName." Category ID: (".$catUID.") ");
echo '{success: true}';
} catch (Exception $ex) {
echo '{success: false, error: ' . $ex->getMessage() . '}';

View File

@@ -26,6 +26,10 @@ $response = new StdClass();
$outputDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "files" . PATH_SEP . "output" . PATH_SEP;
try {
if(empty($_GET)){
$proUid = Bootstrap::json_decode( $_POST['data']);
$_GET["pro_uid"] = $proUid->pro_uid;
}
if (\BpmnProject::exists($_GET["pro_uid"])) {
$exporter = new ProcessMaker\Exporter\XmlExporter($_GET["pro_uid"]);
@@ -40,16 +44,26 @@ try {
rename($outputDir . $outputFilename . "tpm", $outputDir . $outputFilename);
}
$response->file_hash = base64_encode($outputFilename);
$response->success = true;
/* Render page */
if (isset( $_REQUEST["processMap"] ) && $_REQUEST["processMap"] == 1) {
$link = parse_url($result['FILENAME_LINK']);
$result['FILENAME_LINK'] = $link['path'] . '?file_hash=' . $response->file_hash;
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( "xmlform", "xmlform", "processes/processes_Export", "", $result );
G::RenderPage( "publish", "raw" );
} else{
echo json_encode($response);
}
} catch (Exception $e) {
$response->message = $e->getMessage();
$response->success = false;
}
echo json_encode($response);
// ************* DEPRECATED (it will be removed soon) *********************************

View File

@@ -260,7 +260,7 @@ switch ($request) {
$result = new StdClass();
$result->success = true;
$result->msg = G::LoadTranslation('ID_TITLE_COMPLETED');
G::auditLog("BuildCache");
echo G::json_encode( $result );
} catch (Exception $e) {

View File

@@ -0,0 +1,96 @@
<?php
global $RBAC;
if ($RBAC->userCanAccess("PM_SETUP") != 1) {
G::SendTemporalMessage("ID_USER_HAVENT_RIGHTS_PAGE", "error", "labels");
exit(0);
}
$c = new Configurations();
$configPage = $c->getConfiguration( "auditLogList", "pageSize", null, $_SESSION["USER_LOGGED"] );
$config = array ();
$config["pageSize"] = (isset( $configPage["pageSize"] )) ? $configPage["pageSize"] : 20;
$arrayAction = array (array ("ALL", G::LoadTranslation( "ID_ALL" )),
array ("CreateUser", G::LoadTranslation( "ID_CREATE_USER" )),
array ("UpdateUser", G::LoadTranslation( "ID_UPDATE_USER" )),
array ("DeleteUser", G::LoadTranslation( "ID_DELETE_USER" )),
array ("EnableUser", G::LoadTranslation( "ID_ENABLE_USER" )),
array ("DisableUser", G::LoadTranslation( "ID_DISABLE_USER" )),
array ("AssignAuthenticationSource", G::LoadTranslation( "ID_ASSIGN_AUTHENTICATION_SOURCE" )),
array ("AssignUserToGroup", G::LoadTranslation( "ID_ASSIGN_USER_TO_GROUP" )),
array ("CreateAuthSource", G::LoadTranslation( "ID_CREATE_AUTH_SOURCE" )),
array ("UpdateAuthSource", G::LoadTranslation( "ID_UPDATE_AUTH_SOURCE" )),
array ("DeleteAuthSource", G::LoadTranslation( "ID_DELETE_AUTH_SOURCE" )),
array ("CreateRole", G::LoadTranslation( "ID_CREATE_ROLE" )),
array ("UpdateRole", G::LoadTranslation( "ID_UPDATE_ROLE" )),
array ("DeleteRole", G::LoadTranslation( "ID_DELETE_ROLE" )),
array ("AssignUserToRole", G::LoadTranslation( "ID_ASSIGN_USER_TO_ROLE" )),
array ("DeleteUserToRole", G::LoadTranslation( "ID_DELETE_USER_TO_ROLE" )),
array ("AddPermissionToRole", G::LoadTranslation( "ID_ADD_PERMISSION_TO_ROLE" )),
array ("DeletePermissionToRole", G::LoadTranslation( "ID_DELETE_PERMISSION_TO_ROLE" )),
array ("CreateSkin", G::LoadTranslation( "ID_CREATE_SKIN" )),
array ("ImportSkin", G::LoadTranslation( "ID_IMPORT_SKIN" )),
array ("ExportSkin", G::LoadTranslation( "ID_EXPORT_SKIN" )),
array ("DeleteSkin", G::LoadTranslation( "ID_DELETE_SKIN" )),
array ("CreateGroup", G::LoadTranslation( "ID_CREATE_GROUP" )),
array ("UpdateGroup", G::LoadTranslation( "ID_UPDATE_GROUP" )),
array ("DeleteGroup", G::LoadTranslation( "ID_DELETE_GROUP" )),
array ("CreateCategory", G::LoadTranslation( "ID_CREATE_CATEGORY" )),
array ("UpdateCategory", G::LoadTranslation( "ID_UPDATE_CATEGORY" )),
array ("DeleteCategory", G::LoadTranslation( "ID_DELETE_CATEGORY" )),
array ("BuildCache", G::LoadTranslation( "ID_BUILD_CACHE" )),
array ("ClearCache", G::LoadTranslation( "ID_CLEAR_CACHE" )),
array ("ClearCron", G::LoadTranslation( "ID_CLEAR_CRON" )),
array ("UpdateEnvironmentSettings", G::LoadTranslation( "ID_UPDATE_ENVIRONMENT_SETTINGS" )),
array ("UpdateLoginSettings", G::LoadTranslation( "ID_UPDATE_LOGIN_SETTINGS" )),
array ("EnableHeartBeat", G::LoadTranslation( "ID_ENABLE_HEART_BEAT" )),
array ("DisableHeartBeat", G::LoadTranslation( "ID_DISABLE_HEART_BEAT" )),
array ("CreatePmtable", G::LoadTranslation( "ID_CREATE_PMTABLE" )),
array ("UpdatePmtable", G::LoadTranslation( "ID_UPDATE_PMTABLE" )),
array ("DeletePmtable", G::LoadTranslation( "ID_DELETE_PMTABLE" )),
array ("AddDataPmtable", G::LoadTranslation( "ID_ADD_DATA_PMTABLE" )),
array ("UpdateDataPmtable", G::LoadTranslation( "ID_UPDATE_DATA_PMTABLE" )),
array ("DeleteDataPmtable", G::LoadTranslation( "ID_DELETE_DATA_PMTABLE" )),
array ("ImportTable", G::LoadTranslation( "ID_IMPORT_TABLE" )),
array ("ExportTable", G::LoadTranslation( "ID_EXPORT_TABLE" )),
array ("CreateCalendar", G::LoadTranslation( "ID_CREATE_CALENDAR" )),
array ("UpdateCalendar", G::LoadTranslation( "ID_UPDATE_CALENDAR" )),
array ("DeleteCalendar", G::LoadTranslation( "ID_DELETE_CALENDAR" )),
array ("CreateDashletInstance", G::LoadTranslation( "ID_CREATE_DASHLET_INSTANCE" )),
array ("UpdateDashletInstance", G::LoadTranslation( "ID_UPDATE_DASHLET_INSTANCE" )),
array ("DeleteDashletInstance", G::LoadTranslation( "ID_DELETE_DASHLET_INSTANCE" )),
array ("CreateDepartament", G::LoadTranslation( "ID_CREATE_DEPARTAMENT" )),
array ("CreateSubDepartament", G::LoadTranslation( "ID_CREATE_SUB_DEPARTAMENT" )),
array ("UpdateDepartament", G::LoadTranslation( "ID_UPDATE_DEPARTAMENT" )),
array ("UpdateSubDepartament", G::LoadTranslation( "ID_UPDATE_SUB_DEPARTAMENT" )),
array ("DeleteDepartament", G::LoadTranslation( "ID_DELETE_DEPARTAMENT" )),
array ("AssignManagerToDepartament", G::LoadTranslation( "ID_ASSIGN_MANAGER_TO_DEPARTAMENT" )),
array ("AssignUserToDepartament", G::LoadTranslation( "ID_ASSIGN_USER_TO_DEPARTAMENT" )),
array ("RemoveUsersFromDepartament", G::LoadTranslation( "ID_REMOVE_USERS_FROM_DEPARTAMENT" )),
array ("AssignUserToGroup", G::LoadTranslation( "ID_ASSIGN_USER_TO_GROUP" )),
array ("UploadLanguage", G::LoadTranslation( "ID_UPLOAD_LANGUAGE" )),
array ("ExportLanguage", G::LoadTranslation( "ID_EXPORT_LANGUAGE" )),
array ("DeleteLanguage", G::LoadTranslation( "ID_DELETE_LAGUAGE" )),
array ("UploadSystemSettings", G::LoadTranslation( "ID_UPLOAD_SYSTEM_SETTINGS" )),
array ("UpdateEmailSettings", G::LoadTranslation( "ID_UPDATE_EMAIL_SETTINGS" )),
array ("CreateEmailSettings", G::LoadTranslation( "ID_CREATE_EMAIL_SETTINGS" )),
array ("UploadLogo", G::LoadTranslation( "ID_UPLOAD_LOGO" )),
array ("DeleteLogo", G::LoadTranslation( "ID_DELETE_LOGO" )),
array ("RestoreLogo", G::LoadTranslation( "ID_RESTORE_LOGO" )),
array ("ReplaceLogo", G::LoadTranslation( "ID_REPLACE_LOGO" )),
array ("InstallPlugin", G::LoadTranslation( "ID_INSTALL_PLUGIN" )),
array ("EnablePlugin", G::LoadTranslation( "ID_ENABLE_PLUGIN" )),
array ("DisablePlugin", G::LoadTranslation( "ID_DISABLE_PLUGIN" )),
array ("RemovePlugin", G::LoadTranslation( "ID_REMOVE_PLUGIN" )),
array ("SetColumns", G::LoadTranslation( "ID_SET_COLUMNS" )),
array ("EnableAuditLog", G::LoadTranslation( "ID_ENABLE_AUDIT_LOG" )),
array ("DisableAuditLog", G::LoadTranslation( "ID_DISABLE_AUDIT_LOG" )),
);
$oHeadPublisher = &headPublisher::getSingleton();
$oHeadPublisher->addExtJsScript( "setup/auditLog", true );
$oHeadPublisher->assign( "CONFIG", $config );
$oHeadPublisher->assign( "ACTION", $arrayAction );
G::RenderPage( "publish", "extJs" );

View File

@@ -0,0 +1,151 @@
<?php
function mktimeDate ($date)
{
$arrayAux = getdate( strtotime( $date ) );
$mktDate = mktime( $arrayAux["hours"], $arrayAux["minutes"], $arrayAux["seconds"], $arrayAux["mon"], $arrayAux["mday"], $arrayAux["year"] );
return $mktDate;
}
function auditLogArraySet ($str, $filter)
{
$arrayAux = explode( "|", $str );
$date = "";
$workspace = "";
$action = "";
$ip = "";
$user = "";
$description = "";
if (count( $arrayAux ) > 1) {
$date = (isset( $arrayAux[0] )) ? trim( $arrayAux[0] ) : "";
$workspace = (isset( $arrayAux[1] )) ? trim( $arrayAux[1] ) : "";
$ip = (isset( $arrayAux[2] )) ? trim( $arrayAux[2] ) : "";
$user = (isset( $arrayAux[4] )) ? trim( $arrayAux[4] ) : "";
$action = (isset( $arrayAux[5] )) ? trim( $arrayAux[5] ) : "";
$description = (isset( $arrayAux[6] )) ? trim( $arrayAux[6] ) : "";
}
$mktDate = (! empty( $date )) ? mktimeDate( $date ) : 0;
//Filter
$sw = 1;
if ($workspace != $filter["workspace"]) {
$sw = 0;
}
if ($filter["action"] != "ALL") {
if ($action != $filter["action"]) {
$sw = 0;
}
}
if ($filter["dateFrom"] && $mktDate > 0) {
if (! (mktimeDate( $filter["dateFrom"] ) <= $mktDate)) {
$sw = 0;
}
}
if ($filter["dateTo"] && $mktDate > 0) {
if (! ($mktDate <= mktimeDate( $filter["dateTo"] . " 23:59:59" ))) {
$sw = 0;
}
}
if ($filter["description"]) {
$sw = 0;
$string = $filter["description"];
if ( (stristr($date, $string) !== false) || (stristr($ip, $string) !== false) || (stristr($user, $string) !== false) || (stristr($action, $string) !== false) || (stristr($description, $string) !== false) ) {
$sw = 1;
}
}
$arrayData = array ();
$newAction = preg_replace('/([A-Z])/', '_$1', $action);
$newAction = "ID".strtoupper($newAction);
if ($sw == 1) {
$arrayData = array ("DATE" => $date, "USER" => $user, "IP" =>$ip, "ACTION" => G::LoadTranslation($newAction), "DESCRIPTION" => $description);
}
return $arrayData;
}
function getAuditLogData ($filter, $r, $i)
{
$arrayData = array ();
$strAux = null;
$count = 0;
$file = PATH_DATA . "log" . PATH_SEP . "audit.log";
if (file_exists($file)) {
$arrayFileData = file($file);
for ($k = 0; $k < count($arrayFileData); $k++) {
$strAux = $arrayFileData[$k];
if ($strAux) {
$arrayAux = auditLogArraySet($strAux, $filter);
if (count($arrayAux) > 0) {
$count = $count + 1;
if ($count > $i && count($arrayData) < $r) {
$arrayData[] = $arrayAux;
}
}
}
}
}
return array($count, $arrayData);
}
$option = (isset( $_REQUEST["option"] )) ? $_REQUEST["option"] : null;
$response = array ();
switch ($option) {
case "LST":
$pageSize = $_REQUEST["pageSize"];
$workspace = SYS_SYS;
$action = $_REQUEST["action"];
$description = $_REQUEST["description"];
$dateFrom = $_REQUEST["dateFrom"];
$dateTo = $_REQUEST["dateTo"];
$arrayFilter = array ("workspace" => $workspace, "action" => $action, "description" => $description,"dateFrom" => str_replace( "T00:00:00", null, $dateFrom ),"dateTo" => str_replace( "T00:00:00", null, $dateTo )
);
$limit = isset( $_REQUEST["limit"] ) ? $_REQUEST["limit"] : $pageSize;
$start = isset( $_REQUEST["start"] ) ? $_REQUEST["start"] : 0;
list ($count, $data) = getAuditLogData( $arrayFilter, $limit, $start );
$response = array ("success" => true,"resultTotal" => $count,"resultRoot" => $data
);
break;
case "EMPTY":
$status = 1;
try {
$file = PATH_DATA . "log" . PATH_SEP . "cron.log";
if (file_exists( $file )) {
unlink( $file );
}
$response["status"] = "OK";
} catch (Exception $e) {
$response["message"] = $e->getMessage();
$status = 0;
}
if ($status == 0) {
$response["status"] = "ERROR";
}
break;
}
echo G::json_encode( $response );

View File

@@ -0,0 +1,16 @@
<?php
global $RBAC;
$RBAC->requirePermissions( 'PM_SETUP' );
$oHeadPublisher = & headPublisher::getSingleton();
G::LoadClass( 'serverConfiguration' );
$oServerConf = & serverConf::getSingleton();
$sflag = $oServerConf->getAuditLogProperty( 'AL_OPTION', SYS_SYS );
$auditLogChecked = $sflag == 1 ? true : false;
$oHeadPublisher->addExtJsScript( 'setup/auditLogConfig', true ); //adding a javascript file .js
$oHeadPublisher->assign( 'auditLogChecked', $auditLogChecked );
G::RenderPage( 'publish', 'extJs' );

View File

@@ -0,0 +1,33 @@
<?php
global $G_TMP_MENU;
switch ($_GET['action']) {
case 'saveOption':
try {
G::LoadClass( 'serverConfiguration' );
$oServerConf = & serverConf::getSingleton();
$response = new $oServerConf;
/*you can use SYS_TEMP or SYS_SYS ON AUDIT_LOG_CONF to save for each workspace*/
$oServerConf->unsetAuditLogProperty( 'AL_TYPE', SYS_SYS );
if (isset( $_POST['acceptAL'] )) {
$oServerConf->setAuditLogProperty( 'AL_OPTION', 1, SYS_SYS );
$oServerConf->unsetAuditLogProperty( 'AL_NEXT_DATE', SYS_SYS );
$response->enable = true;
G::auditLog("EnableAuditLog");
} else {
G::auditLog("DisableAuditLog");
$oServerConf->setAuditLogProperty( 'AL_OPTION', 0, SYS_SYS );
$oServerConf->unsetAuditLogProperty( 'AL_NEXT_DATE', SYS_SYS );
$oServerConf->setAuditLogProperty( 'AL_TYPE', 'endaudit', SYS_SYS );
$response->enable = false;
}
$response->success = true;
} catch (Exception $e) {
$response->success = false;
$response->msg = $e->getMessage();
}
echo G::json_encode( $response );
break;
}

View File

@@ -3,22 +3,28 @@ try {
$response = new stdClass;
if (isset( $_POST['javascriptCache'] ) || isset( $_POST['metadataCache'] ) || isset( $_POST['htmlCache'] )) {
$msgLog = '';
if (isset( $_POST['javascriptCache'] )) {
G::rm_dir( PATH_C . 'ExtJs' );
$response->javascript = true;
$msgLog .= 'Javascript cache ';
}
if (isset( $_POST['metadataCache'] )) {
G::rm_dir( PATH_C . 'xmlform' );
$response->xmlform = true;
$msgLog .= 'Forms Metadata cache ';
}
if (isset( $_POST['htmlCache'] )) {
G::rm_dir( PATH_C . 'smarty' );
$response->smarty = true;
$msgLog .= 'Forms Html Templates cache ';
}
$response->success = true;
G::auditLog("ClearCache", $msgLog);
} else {
$response->success = false;
}

View File

@@ -144,6 +144,7 @@ switch ($option) {
}
$response["status"] = "OK";
G::auditLog("ClearCron");
} catch (Exception $e) {
$response["message"] = $e->getMessage();
$status = 0;

View File

@@ -46,6 +46,8 @@ switch ($request) {
$conf->aConfig = $config;
$conf->saveConfig( "ENVIRONMENT_SETTINGS", "" );
G::auditLog("UpdateEnvironmentSettings", "UserNameDisplayFormat -> ".$_POST["userFormat"]." GlobalDateFormat -> ".$_POST["dateFormat"]." HideProcessInformation -> ".$_POST["hideProcessInf"]." DateFormat -> ".$_POST["casesListDateFormat"]." NumberOfRowsPerPage -> ".$_POST["casesListRowNumber"]." RefreshTimeSeconds -> ".$_POST["txtCasesRefreshTime"]);
$response = new stdclass();
$response->success = true;
$response->msg = G::LoadTranslation( "ID_SAVED_SUCCESSFULLY" );

View File

@@ -30,10 +30,13 @@ switch ($request) {
$conf->saveConfig( 'ENVIRONMENT_SETTINGS', '' );
$lang = isset( $_REQUEST['lang'] ) ? $_REQUEST['lang'] : 'en';
//remove from memcache when this value is updated/created
$memcache->delete( 'flagForgotPassword' );
$response->success = true;
G::auditLog("UpdateLoginSettings", "DefaultLanguage->".$lang." EnableForgotPassword->".$_REQUEST['forgotPasswd']);
echo G::json_encode( $response );
break;

View File

@@ -42,6 +42,7 @@ if ($handle = opendir( PATH_PLUGINS )) {
$details = $oPluginRegistry->getPluginDetails( $pluginFile );
$oPluginRegistry->disablePlugin( $details->sNamespace );
$size = file_put_contents( PATH_DATA_SITE . 'plugin.singleton', $oPluginRegistry->serializeInstance() );
G::auditLog("DisablePlugin", "Plugin Name: ".$details->sNamespace);
print "size saved : $size <br>";
} else {
//print "change to ENABLED";
@@ -50,6 +51,7 @@ if ($handle = opendir( PATH_PLUGINS )) {
$oPluginRegistry->enablePlugin( $details->sNamespace );
$oPluginRegistry->setupPlugins(); //get and setup enabled plugins
$size = file_put_contents( PATH_DATA_SITE . 'plugin.singleton', $oPluginRegistry->serializeInstance() );
G::auditLog("EnablePlugin", "Plugin Name: ".$details->sNamespace);
print "size saved : $size <br>";
}
}

View File

@@ -34,6 +34,77 @@ try {
throw (new Exception( G::loadTranslation( 'ID_ERROR_UPLOADING_PLUGIN_FILENAME' ) ));
}
//save the files Enterprise
if ($_FILES['form']['error']['PLUGIN_FILENAME'] == 0) {
$filename = $_FILES['form']['name']['PLUGIN_FILENAME'];
$path = PATH_DOCUMENT . 'input' . PATH_SEP;
if (strpos($filename, 'enterprise') !== false) {
G::LoadThirdParty( 'pear/Archive', 'Tar' );
$tar = new Archive_Tar( $path . $filename );
$sFileName = substr( $filename, 0, strrpos( $filename, '.' ) );
$sClassName = substr( $filename, 0, strpos( $filename, '-' ) );
$files = $tar->listContent();
$licenseName = '';
$listFiles = array();
foreach ($files as $key => $val) {
if (strpos(trim($val['filename']), 'enterprise/data/') !== false) {
$listFiles[] = trim($val['filename']);
}
if (strpos(trim($val['filename']), 'license_') !== false) {
$licenseName = trim($val['filename']);
}
}
$tar->extractList( $listFiles, PATH_PLUGINS . 'data');
$tar->extractList( $licenseName, PATH_PLUGINS);
$pluginRegistry = &PMPluginRegistry::getSingleton();
$autoPlugins = glob(PATH_PLUGINS . "data/enterprise/data/*.tar");
$autoPluginsA = array();
foreach ($autoPlugins as $filePath) {
$plName = basename($filePath);
//if (!(in_array($plName, $def))) {
if (strpos($plName, 'enterprise') === false) {
$autoPluginsA[]["sFilename"] = $plName;
}
}
$aPlugins = $autoPluginsA;
foreach ($aPlugins as $key=>$aPlugin) {
$sClassName = substr($aPlugin["sFilename"], 0, strpos($aPlugin["sFilename"], "-"));
$oTar = new Archive_Tar(PATH_PLUGINS . "data/enterprise/data/" . $aPlugin["sFilename"]);
$oTar->extract(PATH_PLUGINS);
if (!(class_exists($sClassName))) {
require_once (PATH_PLUGINS . $sClassName . ".php");
}
$pluginDetail = $pluginRegistry->getPluginDetails($sClassName . ".php");
$pluginRegistry->installPlugin($pluginDetail->sNamespace); //error
}
file_put_contents(PATH_DATA_SITE . "plugin.singleton", $pluginRegistry->serializeInstance());
$licfile = glob(PATH_PLUGINS . "*.dat");
if ((isset($licfile[0])) && ( is_file($licfile[0]) )) {
$licfilename = basename($licfile[0]);
@copy($licfile[0], PATH_DATA_SITE . $licfilename);
@unlink($licfile[0]);
}
require_once ('classes/model/AddonsStore.php');
AddonsStore::checkLicenseStore();
$licenseManager = &pmLicenseManager::getSingleton();
AddonsStore::updateAll(false);
$message = G::loadTranslation( 'ID_ENTERPRISE_INSTALLED') . ' ' . G::loadTranslation( 'ID_LOG_AGAIN');
G::SendMessageText($message, "INFO");
die('<script type="text/javascript">parent.parent.location = "../login/login";</script>');
}
}
//save the file
if ($_FILES['form']['error']['PLUGIN_FILENAME'] == 0) {
$filename = $_FILES['form']['name']['PLUGIN_FILENAME'];
@@ -168,6 +239,8 @@ try {
$size = file_put_contents( PATH_DATA_SITE . "plugin.singleton", $oPluginRegistry->serializeInstance() );
$response = $oPluginRegistry->verifyTranslation( $details->sNamespace);
G::auditLog("InstallPlugin", "Plugin Name: ".$details->sNamespace );
//if ($response->recordsCountSuccess <= 0) {
//throw (new Exception( 'The plugin ' . $details->sNamespace . ' couldn\'t verify any translation item. Verified Records:' . $response->recordsCountSuccess));
//}

View File

@@ -49,6 +49,6 @@ if (file_exists( PATH_PLUGINS . $pluginName . ".php" )) {
$pluginRegistry->unSerializeInstance( file_get_contents( PATH_DATA_SITE . "plugin.singleton" ) );
}
G::auditLog("RemovePlugin","Plugin Name: ".$pluginName);
echo $pluginName . " " . nl2br( G::LoadTranslation( "ID_MSG_REMOVE_PLUGIN_SUCCESS" ) );

View File

@@ -12,11 +12,13 @@ switch ($_GET['action']) {
$oServerConf->setHeartbeatProperty( 'HB_OPTION', 1, 'HEART_BEAT_CONF' );
$oServerConf->unsetHeartbeatProperty( 'HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF' );
$response->enable = true;
G::auditLog("EnableHeartBeat");
} else {
$oServerConf->setHeartbeatProperty( 'HB_OPTION', 0, 'HEART_BEAT_CONF' );
$oServerConf->unsetHeartbeatProperty( 'HB_NEXT_BEAT_DATE', 'HEART_BEAT_CONF' );
$oServerConf->setHeartbeatProperty( 'HB_BEAT_TYPE', 'endbeat', 'HEART_BEAT_CONF' );
$response->enable = false;
G::auditLog("DisableHeartBeat");
}
$response->success = true;

View File

@@ -34,4 +34,4 @@ CREATE TABLE `APP_CACHE_VIEW`
PRIMARY KEY (`APP_UID`,`DEL_INDEX`),
KEY `indexAppNumber`(`APP_NUMBER`),
KEY `indexAppUser`(`USR_UID`, `APP_STATUS`)
)ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Application cache view';
)ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Application cache view';

View File

@@ -170,6 +170,7 @@ function newSkin ($baseSkin = 'classic')
file_put_contents( $configFileFinal, $xmlConfiguration );
$response['success'] = true;
$response['message'] = G::LoadTranslation( 'ID_SKIN_SUCCESS_CREATE' );
G::auditLog("CreateSkin", "Skin Name: ".$skinName);
print_r( G::json_encode( $response ) );
} catch (Exception $e) {
$response['success'] = false;
@@ -285,6 +286,7 @@ function importSkin ()
$response['success'] = true;
$response['message'] = G::LoadTranslation( 'ID_SKIN_SUCCESSFUL_IMPORTED' );
G::auditLog("ImportSkin", "Skin Name: ".$skinName);
print_r( G::json_encode( $response ) );
} catch (Exception $e) {
$response['success'] = false;
@@ -329,7 +331,7 @@ function exportSkin ($skinToExport = "")
$response['success'] = true;
$response['message'] = $skinTar;
G::auditLog("ExportSkin", "Skin Name: ".$skinName);
print_r( G::json_encode( $response ) );
} catch (Exception $e) {
$response['success'] = false;
@@ -355,6 +357,7 @@ function deleteSkin ()
G::rm_dir( PATH_CUSTOM_SKINS . $folderId );
$response['success'] = true;
$response['message'] = "$folderId deleted";
G::auditLog("DeleteSkin", "Skin Name: ".$folderId);
} catch (Exception $e) {
$response['success'] = false;
$response['error'] = $response['message'] = $e->getMessage();

View File

@@ -187,6 +187,7 @@ switch ($_POST['action']) {
require_once 'classes/model/Users.php';
$oUser = new Users();
$oUser->create($aData);
G::auditLog("CreateUser", "User Name: ". $aData['USR_USERNAME']);
if ($_FILES['USR_PHOTO']['error'] != 1) {
//print (PATH_IMAGES_ENVIRONMENT_USERS);
@@ -363,6 +364,7 @@ switch ($_POST['action']) {
require_once 'classes/model/Users.php';
$oUser = new Users();
$oUser->update($aData);
G::auditLog("UpdateUser", "User Name: ". $aData['USR_USERNAME']." User ID: (".$aData['USR_UID'].") ");
if ($_FILES['USR_PHOTO']['error'] != 1) {
if ($_FILES['USR_PHOTO']['tmp_name'] != '') {
$aAux = explode('.', $_FILES['USR_PHOTO']['name']);

View File

@@ -201,6 +201,7 @@ try {
$oUser = new Users();
$aFields = $oUser->load($UID);
$aFields['USR_STATUS'] = 'CLOSED';
$userName = $aFields['USR_USERNAME'];
$aFields['USR_USERNAME'] = '';
$oUser->update($aFields);
@@ -216,8 +217,8 @@ try {
$criteria->add(ProcessUserPeer::USR_UID, $UID, Criteria::EQUAL);
$criteria->add(ProcessUserPeer::PU_TYPE, "SUPERVISOR", Criteria::EQUAL);
ProcessUserPeer::doDelete($criteria);
G::auditLog("DeleteUser", "User Name: ". $userName." User ID: (".$UID.") ");
break;
case 'changeUserStatus':
$response = new stdclass();
@@ -228,6 +229,9 @@ try {
$userData = $userInstance->load($_REQUEST['USR_UID']);
$userData['USR_STATUS'] = $_REQUEST['NEW_USR_STATUS'];
$userInstance->update($userData);
$msg = $_REQUEST['NEW_USR_STATUS'] == 'ACTIVE'? "EnableUser" : "DisableUser";
G::auditLog($msg, "User Name: ".$userData['USR_USERNAME']." User ID: (".$userData['USR_UID'].") ");
$response->status = 'OK';
} else {
$response->status = 'ERROR';
@@ -353,6 +357,7 @@ try {
}
$aData['USR_AUTH_USER_DN'] = $auth_dn;
$RBAC->updateUser($aData);
G::auditLog("AssignAuthenticationSource", "User Name: ".$aData['USR_USERNAME'].' User ID: ('.$aData['USR_UID'].') assign to '.$aData['USR_AUTH_TYPE']);
echo '{success: true}';
break;
case 'usersList':

View File

@@ -886,6 +886,11 @@ antes funcionaba.
background-image: url(/skins/neoclassic/images/icons_silk/sprites.png) !important;
background-position: 0 -10873px !important;
}
.ICON_AUDIT_LOG{
background-image: url(/images/Audit.png) !important;
width: 16px !important;
height: 16px !important;
}
.ICON_EMAILS {
/*ss_email_edit*/

View File

@@ -755,16 +755,16 @@ class SkinEngine
$name = $conf->userNameFormat(isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME']: '', isset($_SESSION['USR_FULLNAME']) ? htmlentities($_SESSION['USR_FULLNAME'] , ENT_QUOTES, 'UTF-8'): '', isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : '');
$smarty->assign('user',$name);
}
if(class_exists('pmLicenseManager')){
$pmLicenseManagerO = &pmLicenseManager::getSingleton();
$expireIn = $pmLicenseManagerO->getExpireIn();
$expireInLabel = $pmLicenseManagerO->getExpireInLabel();
//if($expireIn<=30){
if($expireInLabel != ""){
$smarty->assign('msgVer', '<label class="textBlack">'.$expireInLabel.'</label>&nbsp;&nbsp;');
if (defined('SYS_SYS')) {
require_once ("classes" . PATH_SEP . "class.pmLicenseManager.php");
$pmLicenseManagerO = &pmLicenseManager::getSingleton();
$expireIn = $pmLicenseManagerO->getExpireIn();
$expireInLabel = $pmLicenseManagerO->getExpireInLabel();
if($expireInLabel != ""){
$smarty->assign('msgVer', '<label class="textBlack">'.$expireInLabel.'</label>&nbsp;&nbsp;');
}
}
//}
}
if (defined('SYS_SYS')) {
$logout = '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/login/login';

View File

@@ -458,7 +458,7 @@ class Cases extends Api
try {
$dataList['userId'] = $this->getUserId();
$dataList['action'] = 'paused';
$dataList['paged'] = false;
$dataList["paged"] = true;
$dataList['start'] = $start;
$dataList['limit'] = $limit;

View File

@@ -289,9 +289,9 @@
function renderDeleteFile(val,p,r) {
if (r.data.DELETE_FILE) {
return '<img src="/images/delete-16x16.gif" unselectable="off" onClick="deleteFiles(\'' + r.data.APP_DOC_UID + '\', \'' + r.data.DOC_VERSION + '\');">';
return "<img src=\"/images/delete.png\" onclick=\"deleteFiles(\'" + r.data.APP_DOC_UID + "\', \'" + r.data.DOC_VERSION + "\');\" />";
} else {
return '';
return "-";
}
}
@@ -316,8 +316,7 @@
},
cm: new Ext.grid.ColumnModel({
defaults: {
width: 200,
sortable: true
width: 200
},
columns:
[
@@ -326,13 +325,12 @@
{id:'FILEPDFEXIST', dataIndex: 'FILEPDFEXIST', hidden:true, hideable:false},
{id:'FILEDOC', dataIndex: 'FILEDOC', hidden:true, hideable:false},
{id:'FILEPDF', dataIndex: 'FILEPDF', hidden:true, hideable:false},
{header: _("ID_TITLE_FIELD"), dataIndex: 'TITLE', width: 70},
{header: _("ID_OUTPUT_DOCUMENT"), dataIndex: 'OUTDOCTITLE', width: 70},
{header: _("ID_ORIGIN_TASK"), dataIndex: 'ORIGIN', width: 70},
{header: _("ID_CREATED_BY"), dataIndex: 'CREATED_BY', width: 70},
{header: _("ID_CREATE_DATE"), dataIndex: 'CREATE_DATE', width: 70,renderer:startDateRender},
{header: '', dataIndex: 'DELETE_FILE', width: 30,renderer:renderDeleteFile}
{dataIndex: "TITLE", header: _("ID_TITLE_FIELD"), sortable: true, width: 70},
{dataIndex: "OUTDOCTITLE", header: _("ID_OUTPUT_DOCUMENT"), sortable: true, width: 70},
{dataIndex: "ORIGIN", header: _("ID_ORIGIN_TASK"), sortable: true, width: 70},
{dataIndex: "CREATED_BY", header: _("ID_CREATED_BY"), sortable: true, width: 70},
{dataIndex: "CREATE_DATE", header: _("ID_CREATE_DATE"), sortable: true, width: 70, renderer: startDateRender},
{dataIndex: "DELETE_FILE", header: _("ID_ACTIONS"), sortable: false, menuDisabled: true, hideable: false, width: 30, align: "center", renderer: renderDeleteFile}
]
}),
store: store,
@@ -360,12 +358,12 @@
icon: Ext.MessageBox.ERROR,
buttons: Ext.MessageBox.OK,
fn : function(btn) {
try
try
{
prnt = parent.parent;
top.location = top.location;
}
catch (err)
catch (err)
{
parent.location = parent.location;
}
@@ -434,12 +432,12 @@
icon: Ext.MessageBox.ERROR,
buttons: Ext.MessageBox.OK,
fn : function(btn) {
try
try
{
prnt = parent.parent;
top.location = top.location;
}
catch (err)
catch (err)
{
parent.location = parent.location;
}

View File

@@ -367,7 +367,7 @@ Ext.onReady(function(){
frameConfig:{name:'openCaseFrame', id:'openCaseFrame'},
defaultSrc : uri,
loadMask:{msg: _('ID_LOADING_GRID') },
bodyStyle:{height: (PMExt.getBrowser().screen.height-60) + 'px', overflow:'auto'},
bodyStyle:{height: (PMExt.getBrowser().screen.height-60) + 'px', overflow:'hidden'},
width:screenWidth
}
@@ -1516,7 +1516,7 @@ Ext.onReady(function(){
if (name == "generatedDocuments") {
var uri = 'casesGenerateDocumentPage_Ajax.php?actionAjax=casesGenerateDocumentPage';
}
if (name == "processMap" && _PROJECT_TYPE === 'bpmn') {
var uri = '../designer?prj_uid=' + _PRO_UID + '&prj_readonly=true&app_uid=' + _APP_UID;
}

View File

@@ -383,7 +383,7 @@ SaveEditDepartment = function(){
if (res_ok){
Ext.Ajax.request({
url: 'departments_Ajax',
params: {action: 'updateDepartment', uid: dep_uid, name: dep_name, status: dep_status, manager: dep_manager},
params: {action: 'updateDepartment', uid: dep_uid, name: dep_name, status: dep_status, manager: dep_manager, parent: dep_parent},
success: function(r,o){
var xtree = Ext.getCmp('treePanel');
xtree.getLoader().load(xtree.root);

View File

@@ -499,6 +499,11 @@ Ext.onReady(function() {
"force": true
}
});
addonsFeaturesStore.load({
params: {
"force": true
}
});
Ext.getCmp("refresh-btn").setDisabled(!Ext.getCmp("chkEeInternetConnection").checked);
@@ -518,8 +523,9 @@ Ext.onReady(function() {
url: "addonsStoreAction",
method: "POST"
}),
baseParams: {"action": "addonsList"
},
baseParams: {
"action": "addonsList"
},
//url: "addonsStoreAction?action=addonsList",
@@ -608,6 +614,79 @@ Ext.onReady(function() {
}
});
var addonsFeaturesStore = new Ext.data.JsonStore({
proxy: new Ext.data.HttpProxy({
url: "addonsStoreAction",
method: "POST"
}),
baseParams: {
"action": "addonsList",
"type" : "features"
},
autoDestroy: true,
messageProperty: 'error',
storeId: 'addonsFeaturesStore',
root: 'addons',
idProperty: 'id',
sortInfo: {
field: 'nick',
direction: 'ASC' // or 'DESC' (case sensitive for local sorting)
},
fields: ['id', 'name', 'store', 'nick', 'latest_version', 'version', 'status',
'type', 'release_type', 'url', 'enabled', 'publisher', 'description',
'log', 'progress'],
listeners: {
'beforeload': function(store, options) {
Ext.ComponentMgr.get('loading-features-indicator').setValue('<img src="/images/documents/_indicator.gif" />');
return true;
},
"exception": function(e, type, action, options, response, arg) {
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline">&nbsp;</span>');
},
"load": function(store, records, options) {
Ext.ComponentMgr.get('loading-features-indicator').setValue("");
progressWindow.hide();
store.filterBy(function (record, id) {
if (record.get('type') == 'core') {
coreRecord = record.copy();
status = record.get('status');
if (status == "download-start" || status == "download" || status == "install" || status == "install-finish") {
upgradeStatus(record.get('id'), record.get('store'), record);
}
return false;
}
return true;
});
if (addonsFeatureGrid.disabled) {
addonsFeatureGrid.enable();
}
errors = store.reader.jsonData.errors;
for (var i = 0, n = errors.length; i<n; i++) {
//console.log(errors[i]);
error = errors[i];
installError(error.addonId, error.storeId);
}
store_errors = store.reader.jsonData.store_errors;
error_msg = "";
for (var i = 0, n = store_errors.length; i<n; i++) {
error_msg += "<p>" + store_errors[i].msg + "</p>";
}
if (store_errors.length > 0) {
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline" >&nbsp;</span>');
//storeError(error_msg);
reloadTask.cancel();
} else {
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online">&nbsp;</span>');
}
}
}
});
var upgradeStore = new Ext.data.Store({
recordType: addonsStore.recordType
});
@@ -930,8 +1009,8 @@ Ext.onReady(function() {
var pnlSetup = new Ext.FormPanel({
frame: true,
title: _('ID_SETUP_WEBSERVICES'),
height: 188,
bodyStyle: "padding: 5px 5px 5px 5px;",
height: 178,
//bodyStyle: "padding: 5px 5px 5px 5px;",
disabled: !licensed,
items: [
@@ -966,7 +1045,7 @@ Ext.onReady(function() {
});
var pnlSystem = new Ext.Container({
autoEl: "div",
//autoEl: "div",
//width: 550,
anchor: "right 50%",
//items: [pnlUpgrade, pnlSetup]
@@ -976,62 +1055,62 @@ Ext.onReady(function() {
var licensePanel = new Ext.FormPanel( {
frame: true,
title: _('ID_YOUR_LICENSE'),
labelWidth: 150,
labelWidth: 130,
labelAlign: "right",
//width : '50%',
anchor: "right 50%",
bodyStyle: "padding: 5px 5px 5px 5px;",
//bodyStyle: "padding: 5px 5px 5px 5px;",
defaultType: "displayfield",
autoHeight: true,
items: [
{
id: "license_name",
fieldLabel: _('ID_CURRENT_LICENSE'),
value: license_name
},
{
id: "license_server",
fieldLabel: _('ID_LICENSE_SERVER'),
value: license_server
},
{
id: "license_message",
fieldLabel:_('ID_STATUS'),
hidden: licensed,
hideLabel: licensed,
value: "<font color='red'>"+license_message+"</font>&nbsp;("+license_start_date+"/"+license_end_date+")<br />"+license_user
},
{
id: "license_user",
fieldLabel: _('ID_ISSUED_TO'),
value: license_user,
hidden: !licensed,
hideLabel: !licensed
},
{
id: "license_expires",
fieldLabel: _('ID_EXPIRES'),
value: license_expires+'/'+license_span+" ("+license_start_date+" / "+license_end_date+")",
hidden: !licensed,
hideLabel: !licensed
}
],
buttons : [
{
text: _('ID_IMPORT_LICENSE'),
disable: false,
handler: function() {
addLicenseWindow.show();
}
},
{
text : _('ID_RENEW'),
hidden: true,
disabled : true
}
{
id: "license_name",
fieldLabel: _('ID_CURRENT_LICENSE'),
value: license_name
},
{
id: "license_server",
fieldLabel: _('ID_LICENSE_SERVER'),
value: license_server
},
{
id: "license_message",
fieldLabel:_('ID_STATUS'),
hidden: licensed,
hideLabel: licensed,
value: "<font color='red'>"+license_message+"</font>&nbsp;("+license_start_date+"/"+license_end_date+")<br />"+license_user
},
{
id: "license_user",
fieldLabel: _('ID_ISSUED_TO'),
value: license_user,
hidden: !licensed,
hideLabel: !licensed
},
{
id: "license_expires",
fieldLabel: _('ID_EXPIRES'),
value: license_expires+'/'+license_span+" ("+license_start_date+" / "+license_end_date+")",
hidden: !licensed,
hideLabel: !licensed
}
],
buttons : [
{
text: _('ID_IMPORT_LICENSE'),
disable: false,
handler: function() {
addLicenseWindow.show();
}
},
{
text : _('ID_RENEW'),
hidden: true,
disabled : true
}
]
});
@@ -1178,257 +1257,427 @@ Ext.onReady(function() {
items: [btnEnable, btnDisable, btnAdmin]
});
var addonsGrid = new Ext.grid.GridPanel({
store: addonsStore,
colspan: 2,
flex: 1,
padding: 5,
disabled: !licensed,
columns: [
expander,
{
id : 'icon-column',
header : '',
width : 30,
//sortable : true,
menuDisabled: true,
hideable : false,
dataIndex: 'status',
renderer : function (val, metadata, record, rowIndex, colIndex, store) {
return "<img src=\"/images/enterprise/" + val + ".png\" />";
}
},
{
id :'nick-column',
header : _('ID_NAME'),
//width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'nick',
renderer: function (val, metadata, record, rowIndex, colIndex, store) {
if (record.get('release_type') == 'beta') {
return val + " <span style='color:red'> (Beta)</span>";
} else if (record.get('release_type') == 'localRegistry') {
return val + " <span style='color:gray'> (Local)</span>";
} else {
return val;
}
}
},
{
id : 'publisher-column',
header : _('ID_PUBLISHER'),
//sortable : true,
menuDisabled: true,
dataIndex: 'publisher'
},
{
id : 'version-column',
header : _('ID_VERSION'),
//width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'version'
},
{
id : 'latest-version-column',
header : _('ID_LATEST_VERSION'),
//width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'latest_version'
},
{
id : 'enabled-column',
header : _('ID_ENABLED'),
width : 60,
//sortable : true,
menuDisabled: true,
dataIndex: 'enabled',
renderer: function (val) {
if (val === true) {
return "<img src=\"/images/enterprise/tick-white.png\" />";
} else if (val === false) {
return "<img src=\"/images/enterprise/cross-white.png\" />";
}
return '';
}
},
{
id : "status",
header : "",
width : 120,
//sortable : true,
menuDisabled: true,
hideable : false,
dataIndex: "status",
renderer: function (val) {
var str = "";
var text = "";
switch (val) {
case "available": text = _('ID_BUY_NOW'); break;
case "installed": text = _('ID_INSTALLED'); break;
case "ready": text = _('ID_INSTALL_NOW'); break;
case "upgrade": text = _('ID_UPGRADE_NOW'); break;
case "download": text = _('ID_CANCEL'); break;
case "install": text = _('ID_INSTALLING'); break;
case "cancel": text = _('ID_CANCELLING'); break;
case "disabled": text = _('ID_DISABLED'); break;
case "download-start": text = "<img src=\"/images/enterprise/loader.gif\" />"; break;
default: text = val; break;
}
switch (val) {
case "available":
case "ready":
case "upgrade":
case "download":
case "install":
case "cancel":
case "download-start":
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
case "installed":
case "disabled":
str = "<div style=\"margin-right: 0.85em; font-weight: bold; text-align: center;\">" + text + "</div>";
break;
default:
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
}
return (str);
}
}
],
tbar:[/*{
text:'Install',
tooltip:'Install this addon',
//iconCls:'add',
handler: function(b, e) {
record = addonsGrid.getSelectionModel().getSelected();
console.log(record.get('name') + ' ' + record.get('store'));
installAddon(record.get('name'), record.get('store'));
}
},
btnUninstall,
'-',*/
btnEnable,
btnDisable,
btnAdmin,
'-',
{
id: "import-btn",
text: _('ID_INSTALL_FROM_FILE'),
tooltip: _('ID_INSTALL_FROM_FILE_PLUGIN_TIP'),
iconCls:"button_menu_ext ss_sprite ss_application_add",
//ref: "../removeButton",
disabled: false,
handler: function () {
var sw = 1;
var msg = "";
if (sw == 1 && PATH_PLUGINS_WRITABLE == 0) {
sw = 0;
msg = PATH_PLUGINS_WRITABLE_MESSAGE;
}
if (sw == 1) {
addPluginWindow.show();
} else {
Ext.MessageBox.alert(_('ID_WARNING'), msg);
}
}
},
'-',
{
id: 'refresh-btn',
text:_('ID_REFRESH_LABEL'),
iconCls:'button_menu_ext ss_sprite ss_database_refresh',
tooltip: _('ID_REFRESH_LABEL_PLUGIN_TIP'),
disabled: (INTERNET_CONNECTION == 1)? false : true,
handler: function (b, e) {
reloadTask.cancel();
addonsStore.load({
params: {
"force": true
}
});
}
},
'->',
{
xtype:"displayfield",
id:'loading-indicator'
}
],
plugins: expander,
collapsible: false,
animCollapse: false,
stripeRows: true,
autoExpandColumn: 'nick-column',
title: _('ID_ENTERPRISE_PLUGINS'),
sm: new Ext.grid.RowSelectionModel({
singleSelect:true,
listeners: {
selectionchange: function (sel) {
if (sel.getCount() == 0 || sel.getSelected().get("name") == "enterprise") {
//btnUninstall.setDisabled(true);
btnEnable.setDisabled(true);
btnDisable.setDisabled(true);
btnAdmin.setDisabled(true);
} else {
record = sel.getSelected();
//btnUninstall.setDisabled(!(record.get("status") == "installed" || record.get("status") == "upgrade" || record.get("status") == "disabled"));
btnEnable.setDisabled(!(record.get("enabled") === false));
btnDisable.setDisabled(!(record.get("enabled") === true));
btnAdmin.setDisabled(!(record.get("enabled") === true));
}
}
}
}),
//config options for stateful behavior
stateful: true,
stateId: "grid",
listeners: {
"cellclick": function (grid, rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
//var data = record.get(fieldName);
if (fieldName != "status") {
return;
}
switch (record.get("status")) {
case "upgrade":
case "ready":
if (INTERNET_CONNECTION == 1) {
installAddon(record.get("id"), record.get("store"));
} else {
Ext.MessageBox.alert(_('ID_INFORMATION'), _('ID_NO_INTERNET_CONECTION'));
var addonsGrid = new Ext.grid.GridPanel({
store: addonsStore,
colspan: 2,
flex: 1,
padding: 5,
//anchor : '100%',
//height: 300,
autoHeight : true,
disabled: !licensed,
columns: [
expander,
{
id : 'icon-column',
header : '',
width : 30,
//sortable : true,
menuDisabled: true,
hideable : false,
dataIndex: 'status',
renderer : function (val, metadata, record, rowIndex, colIndex, store) {
return "<img src=\"/images/enterprise/" + val + ".png\" />";
}
break;
case "download":
Ext.Ajax.request({
url: "addonsStoreAction",
params: {
"action": "cancel",
"addon": record.get("id"),
"store": record.get("store")
},
{
id :'nick-column',
header : _('ID_NAME'),
width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'nick',
renderer: function (val, metadata, record, rowIndex, colIndex, store) {
if (record.get('release_type') == 'beta') {
return val + " <span style='color:red'> (Beta)</span>";
} else if (record.get('release_type') == 'localRegistry') {
return val + " <span style='color:gray'> (Local)</span>";
} else {
return val;
}
}
},
{
id : 'publisher-column',
header : _('ID_PUBLISHER'),
//sortable : true,
menuDisabled: true,
dataIndex: 'publisher'
},
{
id : 'version-column',
header : _('ID_VERSION'),
//width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'version'
},
{
id : 'latest-version-column',
header : _('ID_LATEST_VERSION'),
//width : 160,
//sortable : true,
menuDisabled: true,
dataIndex: 'latest_version'
},
{
id : 'enabled-column',
header : _('ID_ENABLED'),
width : 60,
//sortable : true,
menuDisabled: true,
dataIndex: 'enabled',
renderer: function (val) {
if (val === true) {
return "<img src=\"/images/enterprise/tick-white.png\" />";
} else if (val === false) {
return "<img src=\"/images/enterprise/cross-white.png\" />";
}
});
break;
case "available":
addonAvailable(record.get("id"));
break;
return '';
}
},
{
id : "status",
header : "",
width : 120,
//sortable : true,
menuDisabled: true,
hideable : false,
dataIndex: "status",
renderer: function (val) {
var str = "";
var text = "";
switch (val) {
case "available": text = _('ID_BUY_NOW'); break;
case "installed": text = _('ID_INSTALLED'); break;
case "ready": text = _('ID_INSTALL_NOW'); break;
case "upgrade": text = _('ID_UPGRADE_NOW'); break;
case "download": text = _('ID_CANCEL'); break;
case "install": text = _('ID_INSTALLING'); break;
case "cancel": text = _('ID_CANCELLING'); break;
case "disabled": text = _('ID_DISABLED'); break;
case "download-start": text = "<img src=\"/images/enterprise/loader.gif\" />"; break;
default: text = val; break;
}
switch (val) {
case "available":
case "ready":
case "upgrade":
case "download":
case "install":
case "cancel":
case "download-start":
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
case "installed":
case "disabled":
str = "<div style=\"margin-right: 0.85em; font-weight: bold; text-align: center;\">" + text + "</div>";
break;
default:
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
}
return (str);
}
}
],
tbar:[
/*{
text:'Install',
tooltip:'Install this addon',
//iconCls:'add',
handler: function(b, e) {
record = addonsGrid.getSelectionModel().getSelected();
console.log(record.get('name') + ' ' + record.get('store'));
installAddon(record.get('name'), record.get('store'));
}
},
btnUninstall,
'-',*/
btnEnable,
btnDisable,
btnAdmin,
'-',
{
id: "import-btn",
text: _('ID_INSTALL_FROM_FILE'),
tooltip: _('ID_INSTALL_FROM_FILE_PLUGIN_TIP'),
iconCls:"button_menu_ext ss_sprite ss_application_add",
//ref: "../removeButton",
disabled: false,
handler: function () {
var sw = 1;
var msg = "";
if (sw == 1 && PATH_PLUGINS_WRITABLE == 0) {
sw = 0;
msg = PATH_PLUGINS_WRITABLE_MESSAGE;
}
if (sw == 1) {
addPluginWindow.show();
} else {
Ext.MessageBox.alert(_('ID_WARNING'), msg);
}
}
},
'-',
{
id: 'refresh-btn',
text:_('ID_REFRESH_LABEL'),
iconCls:'button_menu_ext ss_sprite ss_database_refresh',
tooltip: _('ID_REFRESH_LABEL_PLUGIN_TIP'),
disabled: (INTERNET_CONNECTION == 1)? false : true,
handler: function (b, e) {
reloadTask.cancel();
addonsStore.load({
params: {
"force": true
}
});
}
},
'->',
{
xtype:"displayfield",
id:'loading-indicator'
}
],
plugins: expander,
collapsible: false,
animCollapse: false,
stripeRows: true,
autoExpandColumn: 'nick-column',
//title: _('ID_ENTERPRISE_PLUGINS'),
sm: new Ext.grid.RowSelectionModel({
singleSelect:true,
listeners: {
selectionchange: function (sel) {
if (sel.getCount() == 0 || sel.getSelected().get("name") == "enterprise") {
//btnUninstall.setDisabled(true);
btnEnable.setDisabled(true);
btnDisable.setDisabled(true);
btnAdmin.setDisabled(true);
} else {
record = sel.getSelected();
//btnUninstall.setDisabled(!(record.get("status") == "installed" || record.get("status") == "upgrade" || record.get("status") == "disabled"));
btnEnable.setDisabled(!(record.get("enabled") === false));
btnDisable.setDisabled(!(record.get("enabled") === true));
btnAdmin.setDisabled(!(record.get("enabled") === true));
}
}
}
}),
//config options for stateful behavior
stateful: true,
stateId: "grid",
listeners: {
"cellclick": function (grid, rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
//var data = record.get(fieldName);
if (fieldName != "status") {
return;
}
switch (record.get("status")) {
case "upgrade":
case "ready":
if (INTERNET_CONNECTION == 1) {
installAddon(record.get("id"), record.get("store"));
} else {
Ext.MessageBox.alert(_('ID_INFORMATION'), _('ID_NO_INTERNET_CONECTION'));
}
break;
case "download":
Ext.Ajax.request({
url: "addonsStoreAction",
params: {
"action": "cancel",
"addon": record.get("id"),
"store": record.get("store")
}
});
break;
case "available":
addonAvailable(record.get("id"));
break;
}
}
}
}
}
});
});
// create the Grid Features
var addonsFeatureGrid = new Ext.grid.GridPanel({
store: addonsFeaturesStore,
colspan: 2,
flex: 1,
padding: 5,
disabled: !licensed,
columns: [
{
id : 'icon-column-feature',
header : '',
width : 30,
hideable : false,
dataIndex: 'status',
renderer : function (val, metadata, record, rowIndex, colIndex, store) {
return "<img src=\"/images/enterprise/" + val + ".png\" />";
}
},
{
id :'nick-column-feature',
header : _('ID_NAME'),
width : 300,
sortable : true,
dataIndex: 'nick',
renderer: function (val, metadata, record, rowIndex, colIndex, store) {
if (record.get('release_type') == 'beta') {
return val + " <span style='color:red'> (Beta)</span>";
} else if (record.get('release_type') == 'localRegistry') {
return val + " <span style='color:gray'> (Local)</span>";
} else {
return val;
}
}
},
{
id :'description-column-feature',
header : _('ID_DESCRIPTION'),
width : 400,
dataIndex: 'description'
},
{
id : 'enabled-column-feature',
header : _('ID_ENABLED'),
width : 60,
dataIndex: 'enabled',
renderer: function (val) {
if (val === true) {
return "<img src=\"/images/enterprise/tick-white.png\" />";
} else if (val === false) {
return "<img src=\"/images/enterprise/cross-white.png\" />";
}
return '';
}
},
{
id : "status-feature",
header : _('ID_STATUS'),
width : 120,
sortable : false,
hideable : false,
dataIndex: "status",
renderer: function (val) {
var str = "";
var text = "";
switch (val) {
case "available": text = _('ID_BUY_NOW'); break;
case "installed": text = _('ID_INSTALLED'); break;
case "ready": text = _('ID_INSTALL_NOW'); break;
case "upgrade": text = _('ID_UPGRADE_NOW'); break;
case "download": text = _('ID_CANCEL'); break;
case "install": text = _('ID_INSTALLING'); break;
case "cancel": text = _('ID_CANCELLING'); break;
case "disabled": text = _('ID_DISABLED'); break;
case "download-start": text = "<img src=\"/images/enterprise/loader.gif\" />"; break;
default: text = val; break;
}
switch (val) {
case "available":
case "ready":
case "upgrade":
case "download":
case "install":
case "cancel":
case "download-start":
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
case "installed":
case "disabled":
str = "<div style=\"margin-right: 0.85em; font-weight: bold; text-align: center;\">" + text + "</div>";
break;
default:
str = "<div class=\"" + val + " roundedCorners\">" + text + "</div>";
break;
}
return (str);
}
}
],
stripeRows: true,
autoHeight : true,
stateId: "grid",
tbar:
[
{
id: 'refresh-btn',
text:_('ID_REFRESH_LABEL'),
iconCls:'button_menu_ext ss_sprite ss_database_refresh',
tooltip: _('ID_REFRESH_LABEL_PLUGIN_TIP'),
disabled: (INTERNET_CONNECTION == 1)? false : true,
handler: function (b, e) {
reloadTask.cancel();
addonsFeaturesStore.load({
params: {
"force": true
}
});
}
},
'->',
{
xtype:"displayfield",
id:'loading-features-indicator'
}
],
listeners: {
"cellclick": function (grid, rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
if (fieldName != "status") {
return;
}
switch (record.get("status")) {
case "upgrade":
case "ready":
if (INTERNET_CONNECTION == 1) {
installAddon(record.get("id"), record.get("store"));
} else {
Ext.MessageBox.alert(_('ID_INFORMATION'), _('ID_NO_INTERNET_CONECTION'));
}
break;
case "download":
Ext.Ajax.request({
url: "addonsStoreAction",
params: {
"action": "cancel",
"addon": record.get("id"),
"store": record.get("store")
}
});
break;
case "available":
addonAvailable(record.get("id"));
break;
}
}
}
});
var topBox = new Ext.Panel({
id:'main-panel-hbox',
@@ -1444,28 +1693,47 @@ Ext.onReady(function() {
defaults: {
frame:true,
flex: 1,
height: 210
height: 182
},
items:[licensePanel, pnlSystem]
});
var fullBox = new Ext.Panel({
id:'main-panel-vbox',
baseCls:'x-plain',
anchor: "right 100%",
layout:'vbox',
//padding: 10,
//defaultMargins: "5",
layoutConfig: {
align : 'stretch',
pack : 'start'
},
var tabEnterprise = new Ext.TabPanel({
activeTab: 0,
//width:600,
anchor: '100%',
height: 370,
plain:true,
defaults:{autoScroll: true},
items:[{
title: _('ID_ENTERPRISE_PLUGINS'),
items : addonsGrid
},{
title: _('ID_ENTERPRISE_FEATURES'),
items : addonsFeatureGrid
}
]
});
defaults: {
frame:true
},
items:[topBox, addonsGrid]
});
var fullBox = new Ext.Panel({
id:'main-panel-vbox',
baseCls:'x-plain',
anchor: "right 100%",
layout:'vbox',
//padding: 10,
//defaultMargins: "5",
layoutConfig: {
align : 'stretch',
pack : 'start'
},
defaults: {
frame:true
},
//items:[topBox, addonsGrid]
items:[topBox, tabEnterprise]
});
///////
addonsGrid.on("rowcontextmenu",
@@ -1477,6 +1745,16 @@ Ext.onReady(function() {
);
addonsGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
addonsFeatureGrid.on("rowcontextmenu",
function (grid, rowIndex, evt) {
var sm = grid.getSelectionModel();
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
},
this
);
addonsFeatureGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
///////
var viewport = new Ext.Viewport({
@@ -1490,6 +1768,7 @@ Ext.onReady(function() {
if (licensed) {
addonsStore.load();
addonsFeaturesStore.load();
}
});

View File

@@ -516,7 +516,8 @@ DeleteButtonAction = function() {
url: "groups_Ajax",
params: {
action: "deleteGroup",
GRP_UID: rowSelected.data.GRP_UID
GRP_UID: rowSelected.data.GRP_UID,
GRP_NAME: rowSelected.data.CON_VALUE
},
success: function(r,o) {

View File

@@ -125,7 +125,7 @@
grant_type=password&
username=bob&
password=secret&
scope=offline_access
scope=*
</pre>
</p>

View File

@@ -180,7 +180,9 @@ Ext.onReady(function(){
dataIndex : tableDef.FIELDS[i].FLD_NAME,
width : 95,
align : 'center',
renderer : columnRenderer
renderer : function (columnRenderer) {
return Ext.util.Format.htmlEncode(columnRenderer);
}
};
if (tableDef.FIELDS[i].FLD_AUTO_INCREMENT != 1) {
column.editor = columnEditor

View File

@@ -0,0 +1,279 @@
Ext.namespace("audit");
audit.application = {
init: function ()
{
var loadMaskAudit = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING_GRID")});
auditLogAjax = function (option)
{
var p;
switch (option) {
case "EMPTY":
p = {
"option": option
};
break;
}
Ext.Ajax.request({
url: "auditLogAjax",
method: "POST",
params: p,
success: function (response, opts)
{
var dataResponse = eval("(" + response.responseText + ")"); //json
switch (option) {
case "EMPTY":
if (dataResponse.status && dataResponse.status == "OK") {
pagingAudit.moveFirst();
}
break;
}
}
});
}
logView = function ()
{
var record = grdpnlMain.getSelectionModel().getSelected();
if (typeof record != "undefined") {
var strData = "<b>" + _("ID_DATE_LABEL") + "</b><br />" + record.get("DATE") + "<br />";
strData = strData + "<b>" + _("ID_USER") + "</b><br />" + record.get("WORKSPACE") + "<br />";
strData = strData + "<b>" + _("ID_IP") + "</b><br />" + record.get("IP") + "<br />";
strData = strData + "<b>" + _("ID_ACTION") + "</b><br />" + record.get("ACTION") + "<br />";
strData = strData + "<b>" + _("ID_DESCRIPTION") + "</b><br />" + record.get("DESCRIPTION") + "<br />";
var formItems = Ext.getCmp("frmLogView").form.items;
formItems.items[0].setValue(strData);
}
}
var pageSize = parseInt(CONFIG.pageSize);
var storeAudit = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: "auditLogAjax",
method: "POST"
}),
reader: new Ext.data.JsonReader({
root: "resultRoot",
totalProperty: "resultTotal",
fields: [
{name: "DATE"},
{name: "USER"},
{name: "IP"},
{name: "ACTION"},
{name: "DESCRIPTION"}
]
}),
listeners: {
beforeload: function (store)
{
loadMaskAudit.show();
this.baseParams = {
"option": "LST",
"pageSize": pageSize,
"action": Ext.getCmp("cboAction").getValue(),
"description": Ext.getCmp("fldDescription").getValue(),
"dateFrom": Ext.getCmp("dateFrom").getValue(),
"dateTo": Ext.getCmp("dateTo").getValue()
};
},
load: function (store, record, opt)
{
loadMaskAudit.hide();
}
}
});
var storePageSize = new Ext.data.SimpleStore({
fields: ["size"],
data: [["20"], ["30"], ["40"], ["50"], ["100"]],
autoLoad: true
});
var dateFrom = new Ext.form.DateField({
id: "dateFrom",
format: "Y-m-d",
editable: false,
width: 90,
value: ""
});
var dateTo = new Ext.form.DateField({
id: "dateTo",
format: "Y-m-d",
editable: false,
width: 90,
value: ""
});
var fldDescription = new Ext.form.TextField({
id: "fldDescription",
valueField: "id",
displayField: "value",
emptyText: _('ID_ENTER_SEARCH_TERM'),
value: "",
triggerAction: "all",
mode: "local",
editable: false,
width: 150
});
var storeAction = new Ext.data.ArrayStore({
idIndex: 0,
fields: ["id", "value"],
data: ACTION
});
var cboAction = new Ext.form.ComboBox({
id: "cboAction",
valueField: "id",
displayField: "value",
value: "ALL",
store: storeAction,
triggerAction: "all",
mode: "local",
editable: false,
width: 150,
listeners: {
select: function (combo, record, index)
{
pagingAudit.moveFirst();
}
}
});
var cboPageSize = new Ext.form.ComboBox({
id: "cboPageSize",
mode: "local",
triggerAction: "all",
store: storePageSize,
valueField: "size",
displayField: "size",
width: 50,
editable: false,
listeners: {
select: function (combo, record, index)
{
pageSize = parseInt(record.data["size"]);
pagingAudit.pageSize = pageSize;
pagingAudit.moveFirst();
}
}
});
var pagingAudit = new Ext.PagingToolbar({
id: "pagingAudit",
pageSize: pageSize,
store: storeAudit,
displayInfo: true,
displayMsg: _("ID_CRON_GRID_PAGE_DISPLAYING_MESSAGE"),
emptyMsg: _("ID_NO_RECORDS_FOUND"),
items: ["-", _("ID_PAGE_SIZE") + "&nbsp;", cboPageSize]
});
var cmodel = new Ext.grid.ColumnModel({
defaults: {
width: 50,
sortable: true
},
columns: [
{id: "ID", dataIndex: "DATE", hidden: true, hideable: false},
{header: _("ID_DATE_LABEL"), dataIndex: "DATE", width: 15},
{header: _("ID_USER"), dataIndex: "USER", width: 15},
{header: _("ID_IP"), dataIndex: "IP", width: 10},
{header: _("ID_ACTION"), dataIndex: "ACTION", width: 15},
{header: _("ID_DESCRIPTION"), dataIndex: "DESCRIPTION"}
]
});
var smodel = new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function (sm)
{
},
rowdeselect: function (sm)
{
}
}
});
var grdpnlMain = new Ext.grid.GridPanel({
id: "grdpnlMain",
store: storeAudit,
colModel: cmodel,
selModel: smodel,
columnLines: true,
viewConfig: {forceFit: true},
enableColumnResize: true,
enableHdMenu: false,
tbar: [
"->",
{xtype: "tbtext", text: _("ID_ACTION") + "&nbsp;"},
cboAction,
"-",
{xtype: "tbtext", text: _("ID_DESCRIPTION") + "&nbsp;"},
fldDescription,
"-",
{xtype: "tbtext", text: _("ID_FROM") + "&nbsp;"},
dateFrom,
{xtype: "tbtext", text: _("ID_TO") + "&nbsp;"},
dateTo,
{
xtype: "button",
text: _("ID_RESET_FILTERS"),
handler: function ()
{
Ext.getCmp("dateFrom").reset(),
Ext.getCmp("dateTo").reset(),
Ext.getCmp("fldDescription").reset()
}
},
"-",
{
xtype: "button",
text: _("ID_SEARCH"),
handler: function ()
{
pagingAudit.moveFirst();
}
}
],
bbar: pagingAudit,
border: false,
title: _("ID_AUDIT_LOG_ACTIONS"),
listeners: {
rowdblclick: function ()
{
logView();
}
}
});
storeAudit.load();
cboPageSize.setValue(pageSize);
var viewport = new Ext.Viewport({
layout: "fit",
autoScroll: false,
items: [grdpnlMain]
});
}
}
Ext.onReady(audit.application.init, audit.application);

View File

@@ -0,0 +1,86 @@
Ext.onReady(function() {
auditLogFields = new Ext.form.FieldSet({
title : _('ID_AUDITLOG_DISPLAY'),
items : [
{
xtype : 'checkbox',
checked : auditLogChecked,
name : 'acceptAL',
fieldLabel : _('ID_TERMS_USE'),
hideLabel : true,
id : 'ch_ii',
style : 'margin-top:15px',
boxLabel : '<b>' + _('ID_ENABLE_AUDIT_LOG') + '</b>',
listeners : {
check : function(){
Ext.getCmp('btn_save').enable();
}
}
},
{
xtype : 'box',
autoEl : { tag : 'div',
html : '<br />' + _('ID_AUDIT_LOG_DETAILS_1')
+ '<br>' + _('ID_AUDIT_LOG_DETAILS_2')
},
style : 'margin-left:20px'
}
],
buttons : [{
id : 'btn_save',
text : _('ID_SAVE_SETTINGS'),
disabled: true,
handler : saveOption
}]
});
var frm = new Ext.FormPanel( {
title : '&nbsp',
id : 'frmAuditLog',
labelWidth : 150,
width : 600,
labelAlign : 'right',
autoScroll : true,
bodyStyle : 'padding:2px',
waitMsgTarget : true,
frame : true,
defaults: {
allowBlank : false,
msgTarget : 'side',
align : 'center'
},
items : [ auditLogFields ]
});
//render to process-panel
frm.render(document.body);
});
function saveOption()
{
Ext.getCmp('btn_save').disable();
Ext.getCmp('frmAuditLog').getForm().submit( {
url : 'auditLogConfigAjax?action=saveOption',
waitMsg : _('ID_SAVING_PROCESS'),
waitTitle : "&nbsp;",
timeout : 36000,
success : function(obj, resp) {
//nothing to do
response = Ext.decode(resp.response.responseText);
if (response.enable) {
parent.PMExt.notify(_('ID_AUDITLOG_DISPLAY'), _('ID_AUDIT_LOG_ENABLED'));
}
else {
parent.PMExt.notify(_('ID_AUDITLOG_DISPLAY'), _('ID_AUDIT_LOG_DISABLED'));
}
},
failure : function(obj, resp) {
Ext.Msg.alert( _('ID_ERROR'), resp.result.msg);
}
});
}

View File

@@ -10,7 +10,7 @@
<INP_DOC_MAX_FILESIZE type="hidden" showInTable="0" />
<INP_DOC_MAX_FILESIZE_LABEL type="text" maxlength="30" validate="Any" size="10" mode="view">
<en>Max size accepted</en>
<en>Max. file size</en>
</INP_DOC_MAX_FILESIZE_LABEL>
<APP_DOC_FILENAME type="file">

View File

@@ -45,6 +45,7 @@
<js type="javascript"><![CDATA[
var oPanel1;
getField('SEARCH').disabled = true;
hideRowById("SEARCH");
//hideRowById('WS_USER');
//hideRowById('WS_PASS');
@@ -58,8 +59,20 @@ leimnud.event.add(getField('TASKS'), 'change', function() {
}
});
/**/
leimnud.event.add(getField("WS_USER"), "keypress", function() {
hideRowById("SEARCH");
});
leimnud.event.add(getField("WS_PASS"), "keypress", function() {
hideRowById("SEARCH");
});
leimnud.event.add(getField('WE_TYPE'), 'change', function() {
if (getField('WE_TYPE').value=='WS') {
hideRowById("SEARCH");
showRowById("TEST");
showRowById('WE_USR');
showRowById('WS_USER');
showRowById('WS_PASS');
@@ -67,11 +80,14 @@ leimnud.event.add(getField('WE_TYPE'), 'change', function() {
showRowById('subtitle2');
}
else {
hideRowById("TEST");
showRowById("SEARCH");
hideRowById('WS_USER');
hideRowById('WS_PASS');
hideRowById('WS_ROUNDROBIN');
hideRowById('subtitle2');
}hideRowById('WS_ROUNDROBIN');
}.extend(getField('WE_TYPE')));
@@ -82,7 +98,7 @@ leimnud.event.add(getField('WE_TYPE'), 'change', function() {
* @makes a rpc to processes_webEntryValidate in order to validate if the
* process user has the permissions to create and use a webentry
*/
var webEntry_validate = function(PRO_UID, TASKS, DYNAFORM) {
//G.alert(PRO_UID);
// G.alert(getField('WE_TYPE').value);
@@ -118,6 +134,8 @@ var tasksName = getField('TASKS')[getField('TASKS').selectedIndex].innerHTML;
//var scs=rpc.xmlhttp.responseText.extractScript();
//scs.evalScript();
if(rpc.xmlhttp.responseText>=1){
showRowById("SEARCH");
getField('SEARCH').disabled = false;
//webEntry_generate(PRO_UID);
} else {
@@ -129,7 +147,7 @@ var tasksName = getField('TASKS')[getField('TASKS').selectedIndex].innerHTML;
}
}
var webEntry_generate = function(PRO_UID, TASKS, DYNAFORM) {
@@ -144,7 +162,7 @@ var webEntry_generate = function(PRO_UID, TASKS, DYNAFORM) {
}
else
{ if(odynaform.value=='')
{ alert('This process does not have an assigned dynaform');
{ alert('This process does not have an assigned dynaform');
}
else
{ sw=1;
@@ -180,7 +198,7 @@ var webEntry_generate = function(PRO_UID, TASKS, DYNAFORM) {
scs.evalScript();
}.extend(this);
oRPC.make();
}
}
else
{
var k = new leimnud.module.rpc.xmlhttp({
@@ -188,28 +206,28 @@ var webEntry_generate = function(PRO_UID, TASKS, DYNAFORM) {
async : true,
method: 'POST',
args : "action=webEntry_Val_Assig&data="+{
PRO_UID:PRO_UID,
TASKS:getField('TASKS').value,
PRO_UID:PRO_UID,
TASKS:getField('TASKS').value,
DYNAFORM:getField('DYNAFORM').value
}.toJSONString()
});
k.callback = function(rpc){
if(rpc.xmlhttp.responseText!=1){
msgBox(G_STRINGS.WEBEN_ONLY_BALANCEDJS,"alert");
}
}
}.extend(this);
k.make();
k.make();
var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../processes/processes_Ajax',
async : true,
method: 'POST',
args : "action=webEntry_generate&data="+{PRO_UID:PRO_UID, TASKS:getField('TASKS').value, DYNAFORM:getField('DYNAFORM').value, WE_TYPE:getField('WE_TYPE').value, WS_USER:getField('WS_USER').value, WS_PASS:getField('WS_PASS').value, WS_ROUNDROBIN:getField('WS_ROUNDROBIN').value, WE_USR:getField('WE_USR').value }.toJSONString()
});
});
oRPC.make();
oPanel.remove();
Pm.tmp.editProcessPanel.clearContent();
oPanel.remove();
Pm.tmp.editProcessPanel.clearContent();
Pm.tmp.editProcessPanel.loader.show();
var r = new leimnud.module.rpc.xmlhttp({
url:'../processes/processes_Ajax',
@@ -222,7 +240,7 @@ var webEntry_generate = function(PRO_UID, TASKS, DYNAFORM) {
Pm.tmp.editProcessPanel.loader.hide();
var scs = rpc.xmlhttp.responseText.extractScript();
Pm.tmp.editProcessPanel.addContent(rpc.xmlhttp.responseText);
scs.evalScript();
scs.evalScript();
}.extend(this,panel);
r.make();
}

View File

@@ -44,12 +44,12 @@
<td class="FormTitle" colspan="2" align="">{$form.PME_SUBTITLE3}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_STARTDATE}</td>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$PME_STARTDATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_STARTDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_STARTDATE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_ENDDATE}</td>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$PME_ENDDATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_ENDDATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_ENDDATE}</td>
</tr>

View File

@@ -27,7 +27,7 @@
<INP_DOC_TAGS type="textpm" size="30" maxlength="200" showVars="1" process="@#PRO_UID" symbol="@#" validate="Tag">
<en><![CDATA[Tags]]></en>
</INP_DOC_TAGS>
<INP_DOC_TYPE_FILE type="text" defaultvalue="*.*" maxlength="200" size="37" colWidth="200" titleAlign="left" align="left" hint="To verify that the content of the file is the correct according to its extension, it is necessary to enable the FILEINFO extension, if this is not enabled only the extension will be verified." dataCompareField="T.CON_VALUE" dataCompareType="contains">
<INP_DOC_TYPE_FILE type="text" defaultvalue="*.*" maxlength="200" size="37" colWidth="200" titleAlign="left" align="left" hint="Configure many extensions separated by comas. e.g *.jpg,*.png,*.bmp. Enable the FILEINFO module to verify the content and the extension of a file. If this is not enabled, the content won\'t be verified." dataCompareField="T.CON_VALUE" dataCompareType="contains">
<en><![CDATA[Allowed file extensions (Use *.* to allow any extension)]]></en>
</INP_DOC_TYPE_FILE>

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B