Merge branch 'master' of bitbucket.org:colosa/processmaker
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
86
workflow/engine/classes/class.licensedFeatures.php
Normal file
86
workflow/engine/classes/class.licensedFeatures.php
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 = '';
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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!' ));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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-
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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','','',' ','') ,
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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') {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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'];
|
||||
|
||||
@@ -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'];
|
||||
|
||||
@@ -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'];
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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}';
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"]));
|
||||
}
|
||||
|
||||
@@ -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' );
|
||||
|
||||
@@ -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() . '}';
|
||||
|
||||
@@ -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) *********************************
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
96
workflow/engine/methods/setup/auditLog.php
Normal file
96
workflow/engine/methods/setup/auditLog.php
Normal 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" );
|
||||
151
workflow/engine/methods/setup/auditLogAjax.php
Normal file
151
workflow/engine/methods/setup/auditLogAjax.php
Normal 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 );
|
||||
16
workflow/engine/methods/setup/auditLogConfig.php
Normal file
16
workflow/engine/methods/setup/auditLogConfig.php
Normal 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' );
|
||||
33
workflow/engine/methods/setup/auditLogConfigAjax.php
Normal file
33
workflow/engine/methods/setup/auditLogConfigAjax.php
Normal 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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -144,6 +144,7 @@ switch ($option) {
|
||||
}
|
||||
|
||||
$response["status"] = "OK";
|
||||
G::auditLog("ClearCron");
|
||||
} catch (Exception $e) {
|
||||
$response["message"] = $e->getMessage();
|
||||
$status = 0;
|
||||
|
||||
@@ -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" );
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
//}
|
||||
|
||||
@@ -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" ) );
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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']);
|
||||
|
||||
@@ -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':
|
||||
|
||||
@@ -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*/
|
||||
|
||||
|
||||
@@ -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> ');
|
||||
|
||||
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> ');
|
||||
}
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
if (defined('SYS_SYS')) {
|
||||
$logout = '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/login/login';
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"> </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" > </span>');
|
||||
//storeError(error_msg);
|
||||
reloadTask.cancel();
|
||||
} else {
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online"> </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> ("+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> ("+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();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
grant_type=password&
|
||||
username=bob&
|
||||
password=secret&
|
||||
scope=offline_access
|
||||
scope=*
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
279
workflow/engine/templates/setup/auditLog.js
Normal file
279
workflow/engine/templates/setup/auditLog.js
Normal 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") + " ", 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") + " "},
|
||||
cboAction,
|
||||
"-",
|
||||
{xtype: "tbtext", text: _("ID_DESCRIPTION") + " "},
|
||||
fldDescription,
|
||||
"-",
|
||||
{xtype: "tbtext", text: _("ID_FROM") + " "},
|
||||
dateFrom,
|
||||
{xtype: "tbtext", text: _("ID_TO") + " "},
|
||||
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);
|
||||
86
workflow/engine/templates/setup/auditLogConfig.js
Normal file
86
workflow/engine/templates/setup/auditLogConfig.js
Normal 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 : ' ',
|
||||
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 : " ",
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
BIN
workflow/public_html/images/Audit.png
Normal file
BIN
workflow/public_html/images/Audit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 329 B |
Reference in New Issue
Block a user