Merge remote branch 'upstream/master' into BUG-9630

This commit is contained in:
Victor Saisa Lopez
2012-08-30 18:08:12 -04:00
11 changed files with 837 additions and 464 deletions

View File

@@ -5169,7 +5169,7 @@ function getDirectorySize($path,$maxmtime=0)
*
* @author Erik Amaru Ortiz <aortiz.erik@gmail.com>
*/
public function dispatchRestService($uri)
public function dispatchRestService($uri, $config = array())
{
require_once 'restler/restler.php';
@@ -5177,9 +5177,9 @@ function getDirectorySize($path,$maxmtime=0)
$rest->setSupportedFormats('JsonFormat', 'XmlFormat');
// getting all services class
$srvClasses = glob(PATH_SERVICES_REST . '*.php');
$srvClasses = glob(PATH_SERVICES_REST . '*.php');
$crudClasses = glob(PATH_SERVICES_REST . 'crud/*.php');
$srvClasses = array_merge($srvClasses, $crudClasses);
$srvClasses = array_merge($srvClasses, $crudClasses);
// hook to get rest api classes from plugins
if ( class_exists( 'PMPluginRegistry' ) ) {
@@ -5219,22 +5219,44 @@ function getDirectorySize($path,$maxmtime=0)
// resolving the class for current request
$uriPart = explode('/', $uri);
$requestedClass = '';
if (isset($uriPart[1])) {
$requestedClass = ucfirst($uriPart[1]);
}
if (class_exists('Services_Rest_' . $requestedClass)) {
$namespace = 'Services_Rest_';
} elseif (class_exists('Plugin_Services_Rest_' . $requestedClass)) {
$namespace = 'Plugin_Services_Rest_';
} else {
$namespace = '';
$namespace = '';
}
// end resolv.
// Send additional headers (if exists) configured on rest-config.ini
if (array_key_exists('HEADERS', $config)) {
foreach ($config['HEADERS'] as $name => $value) {
header("$name: $value");
}
}
// to handle a request with "OPTIONS" method
if (! empty($namespace) && $_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
$reflClass = new ReflectionClass($namespace . $requestedClass);
// if the rest class has not a "options" method
if (! $reflClass->hasMethod('options')) {
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, HEADERS');
header('Access-Control-Allow-Headers: authorization, content-type');
header("Access-Control-Allow-Credentials", "false");
header('Access-Control-Max-Age: 60');
exit();
}
}
// override global REQUEST_URI to pass to Restler library
$_SERVER['REQUEST_URI'] = '/' . strtolower($namespace) . ltrim($uri, '/');
// handle the rest request
$rest->handle();
}
}

View File

@@ -9,63 +9,91 @@
* @author Erik Amaru Ortiz <aortiz.erik@gmail.com>
*/
include dirname(__FILE__) . '/../../../gulliver/core/Bootstrap.php';
include dirname(__FILE__) . '/../../../workflow/engine/PmBootstrap.php';
$basePath = realpath(dirname(__FILE__) . '/../../../');
include $basePath . '/gulliver/core/Bootstrap.php';
include $basePath . '/workflow/engine/PmBootstrap.php';
$config = array(
'path_trunk' => realpath(dirname(__FILE__) . '/../../../')
);
$bootstrap = new PmBootstrap($config);
$bootstrap = new PmBootstrap(array('path_trunk' => $basePath));
$bootstrap->registerClasses();
$bootstrap->configure();
if (! isset($argv[1])) {
$help = '$>' . $argv[0] . " [option] [plugin-name]\n";
$help .= "Avalaibles options:\n";
$help .= " build-api : Build Crud Rest API from ProcessMaker or a plugin.\n";
$help .= " gen-ini : Generates the rest config ini file.\n";
$help .= "* [plugin-name] : (Optional) to specify create crud api for a determiated plugin.\n\n";
$help = <<<EOT
Usage: {$argv[0]} [build-crud] [gen-ini] [-p <plugin name>] [-w <workspace name>]
Options:
build-crud : Task, build Rest Crud API.
gen-ini : Task, generates the rest config ini file.
-p : Especify a plugin to set as enviroment to perform the tasks.
-w : Especify a workspace to set as enviroment to perform the tasks.
EOT;
echo $help;
exit(0);
}
$restTool = new Service_Rest_RestTool();
$restTool->setBasePath(PATH_CORE);
try {
switch ($argv[1]) {
case 'build-api':
if (isset($argv[2])) {
// attemp create rest api from a plugin
if (! is_dir(PATH_PLUGINS . $argv[2])) {
throw new Exception(sprintf("Plugin '%s' doesn't exist.", $argv[2]));
}
$restTool->setBasePath(PATH_PLUGINS . $argv[2] . PATH_SEP);
}
$restTool->buildApi();
break;
case 'build-crud':
case 'gen-ini':
if (file_exists(PATH_CONFIG . '/rest-config.ini')) {
echo "The file 'rest-config.ini' already exits, overwrite (Y/n)? ";
$resp = trim(fgets(STDIN));
if (isset($argv[2])) {
if (! isset($argv[3])) {
throw new Exception("Missing option, need especify a valid argument after option '{$argv[2]}'");
}
if (strtolower($resp) != 'y') {
echo "Skipped\n";
exit(0);
switch ($argv[2]) {
case '-p':
// attempt create rest api from a plugin
if (! is_dir(PATH_PLUGINS . $argv[3])) {
throw new Exception(sprintf("Plugin '%s' doesn't exist.", $argv[3]));
}
$restTool->setBasePath($optPath = PATH_PLUGINS . $argv[3] . PATH_SEP);
break;
case '-w':
// attempt create rest api from a plugin
if (! is_dir(PATH_DATA . 'sites' . PATH_SEP . $argv[3])) {
throw new Exception(sprintf("Workspace '%s' doesn't exist.", $argv[3]));
}
$path = PATH_DATA . 'sites' . PATH_SEP . $argv[3] . PATH_SEP;
$restTool->setBasePath($path);
$restTool->setConfigFile($path . 'rest-config.ini');
$restTool->setDbXmlSchemaFile(PATH_CONFIG . 'schema.xml');
break;
default:
throw new Exception(sprintf("Invalid option '%s'", $argv[2]));
}
}
echo "Generating config ini file ... ";
$restTool->init();
$genFile = $restTool->buildConfigIni();
if ($argv[1] == 'build-crud') {
$restTool->buildCrudApi();
} else {
if (file_exists(PATH_CONFIG . '/rest-config.ini')) {
echo "The file 'rest-config.ini' already exits, overwrite (Y/n)? ";
$resp = trim(fgets(STDIN));
echo "DONE!\n";
echo "File generated: $genFile\n\n";
if (strtolower($resp) != 'y') {
echo "Skipped\n";
exit(0);
}
}
echo "Generating config ini file ... ";
$genFile = $restTool->buildConfigIni();
echo "DONE!\n";
echo "File generated: $genFile\n\n";
}
break;
default:
@@ -73,5 +101,5 @@ try {
break;
}
} catch (Exception $e) {
echo $e->getMessage() . "\n";
Service_Rest_RestTool::out($e->getMessage(), 'error');
}

View File

@@ -3551,29 +3551,39 @@ class processMap {
* @return boolean true
*/
function newObjectPermission($sProcessUID) {
$aUsersGroups = array();
$aUsersGroups [] = array('UID' => 'char', 'LABEL' => 'char');
$usersGroups = '<select pm:dependent="0" pm:label="' . G::LoadTranslation('ID_GROUP_USERS') . '" name="form[GROUP_USER]" id="form[GROUP_USER]" class="module_app_input___gray">';
$start = '';
$limit = '';
$filter = '';
$groups = new Groupwf();
$result = $groups->getAllGroup($start,$limit,$filter);
foreach ($result['rows'] as $results) {
$aUsersGroups [] = array('UID' => '2|' . $results ['GRP_UID'], 'LABEL' => $results ['GRP_TITLE'] . ' (' . G::LoadTranslation('ID_GROUP') . ')');
if (count($result['rows']) > 0) {
$usersGroups .= '<optgroup label="' . G::LoadTranslation('ID_GROUPS') . '">';
foreach ($result['rows'] as $results) {
$usersGroups .= '<option value="2|' . $results ['GRP_UID'] . '">' . htmlentities($results ['GRP_TITLE'], ENT_QUOTES, 'UTF-8') . '</option>';
}
$usersGroups .= '</optgroup>';
}
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_LASTNAME);
$oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aUsersGroups [] = array('UID' => '1|' . $aRow ['USR_UID'], 'LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'] . ' (' . $aRow ['USR_USERNAME'] . ')');
$oDataset->next();
if ($oDataset->getRecordCount() > 0) {
$usersGroups .= '<optgroup label="' . G::LoadTranslation('ID_USERS') . '">';
while ($aRow = $oDataset->getRow()) {
$usersGroups .= '<option value="1|' . $aRow ['USR_UID'] . '">' . htmlentities($aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'] . ' (' . $aRow ['USR_USERNAME'] . ')', ENT_QUOTES, 'UTF-8') . '</option>';
$oDataset->next();
}
$usersGroups .= '</optgroup>';
}
$usersGroups .= '</select>';
$aAllObjects = array();
$aAllObjects [] = array('UID' => 'char', 'LABEL' => 'char');
$aAllDynaforms = array();
@@ -3617,7 +3627,6 @@ class processMap {
}
global $_DBArray;
$_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
$_DBArray ['usersGroups'] = $aUsersGroups;
$_DBArray ['allObjects'] = $aAllObjects;
$_DBArray ['allDynaforms'] = $aAllDynaforms;
$_DBArray ['allInputs'] = $aAllInputs;
@@ -3625,7 +3634,7 @@ class processMap {
$_SESSION ['_DBArray'] = $_DBArray;
global $G_PUBLISH;
$G_PUBLISH = new Publisher ( );
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_NewObjectPermission', '', array('LANG' => SYS_LANG, 'PRO_UID' => $sProcessUID, 'ID_DELETE' => G::LoadTranslation('ID_DELETE')), 'processes_SaveObjectPermission');
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_NewObjectPermission', '', array('GROUP_USER' => $usersGroups, 'LANG' => SYS_LANG, 'PRO_UID' => $sProcessUID, 'ID_DELETE' => G::LoadTranslation('ID_DELETE')), 'processes_SaveObjectPermission');
G::RenderPage('publish', 'raw');
return true;
}
@@ -3661,7 +3670,6 @@ class processMap {
$aFields ['PRO_UID'] = $aRows ['PRO_UID'];
$aFields ['OP_CASE_STATUS'] = $aRows ['OP_CASE_STATUS'];
$aFields ['TAS_UID'] = $aRows ['TAS_UID'];
$aFields ['GROUP_USER'] = $user;
$aFields ['OP_TASK_SOURCE'] = $aRows ['OP_TASK_SOURCE'];
$aFields ['OP_PARTICIPATE'] = $aRows ['OP_PARTICIPATE'];
$aFields ['OP_OBJ_TYPE'] = $aRows ['OP_OBJ_TYPE'];
@@ -3682,8 +3690,7 @@ class processMap {
break;
}
$aUsersGroups = array();
$aUsersGroups [] = array('UID' => 'char', 'LABEL' => 'char');
$usersGroups = '<select pm:dependent="0" pm:label="' . G::LoadTranslation('ID_GROUP_USERS') . '" name="form[GROUP_USER]" id="form[GROUP_USER]" class="module_app_input___gray">';
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
$oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
@@ -3693,12 +3700,17 @@ class processMap {
$aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oCriteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
$oCriteria->addAscendingOrderByColumn('GRP_TITLE');
$oDataset = GroupwfPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aUsersGroups [] = array('UID' => '2|' . $aRow ['GRP_UID'], 'LABEL' => $aRow ['GRP_TITLE'] . ' (' . G::LoadTranslation('ID_GROUP') . ')');
$oDataset->next();
if ($oDataset->getRecordCount() > 0) {
$usersGroups .= '<optgroup label="' . G::LoadTranslation('ID_GROUPS') . '">';
while ($aRow = $oDataset->getRow()) {
$usersGroups .= '<option value="2|' . $aRow ['GRP_UID'] . '"' . ('2|' . $aRow ['GRP_UID'] == $user ? ' selected="selected"' : '') . '>' . htmlentities($aRow ['GRP_TITLE'], ENT_QUOTES, 'UTF-8') . '</option>';
$oDataset->next();
}
$usersGroups .= '</optgroup>';
}
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
@@ -3706,12 +3718,18 @@ class processMap {
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_LASTNAME);
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aUsersGroups [] = array('UID' => '1|' . $aRow ['USR_UID'], 'LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'] . ' (' . $aRow ['USR_USERNAME'] . ')');
$oDataset->next();
if ($oDataset->getRecordCount() > 0) {
$usersGroups .= '<optgroup label="' . G::LoadTranslation('ID_USERS') . '">';
while ($aRow = $oDataset->getRow()) {
$usersGroups .= '<option value="1|' . $aRow ['USR_UID'] . '"' . ('1|' . $aRow ['USR_UID'] == $user ? ' selected="selected"' : '') . '>' . htmlentities($aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'] . ' (' . $aRow ['USR_USERNAME'] . ')', ENT_QUOTES, 'UTF-8') . '</option>';
$oDataset->next();
}
$usersGroups .= '</optgroup>';
}
$aAllObjects = array();
@@ -3755,16 +3773,17 @@ class processMap {
}
global $_DBArray;
$_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
$_DBArray ['usersGroups'] = $aUsersGroups;
$_DBArray ['allObjects'] = $aAllObjects;
$_DBArray ['allDynaforms'] = $aAllDynaforms;
$_DBArray ['allInputs'] = $aAllInputs;
$_DBArray ['allOutputs'] = $aAllOutputs;
$_SESSION ['_DBArray'] = $_DBArray;
global $G_PUBLISH;
$G_PUBLISH = new Publisher ( );
$aFields['GROUP_USER'] = $usersGroups;
$aFields['ID_DELETE'] = G::LoadTranslation('ID_DELETE');
global $G_PUBLISH;
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_EditObjectPermission', '', $aFields, 'processes_SaveEditObjectPermission');
G::RenderPage('publish', 'raw');
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,23 @@
class Services_Rest_Case
{
protected function get($id = '', $start=null, $limit=null, $type=null, $filter=null, $search=null, $process=null, $user=null, $status=null, $typeResource=null, $dateFrom=null, $dateTo=null)
public function get()
{
echo 'hello world';
}
public function options22()
{
echo 'opts';
}
public function post()
{
header('Content-Type: application/json');
echo '{"response": "hello post"}';
}
protected function get11($id = '', $start=null, $limit=null, $type=null, $filter=null, $search=null, $process=null, $user=null, $status=null, $typeResource=null, $dateFrom=null, $dateTo=null)
{
if (empty($id)) {
// getting all records.

View File

@@ -0,0 +1,76 @@
<form id="{$form_id}" name="{$form_name}" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit="return validateForm('{$form_objectRequiredFields}');"> <div class="borderForm" style="width:{$form_width}; padding-left:0; padding-right:0; border-width:{$form_border};">
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<div class="content" style="height:{$form_height};" >
<table width="99%">
<tr>
<td valign='top'>
<input type="hidden" class="notValidateThisFields" name="__notValidateThisFields__" id="__notValidateThisFields__" value="{$form_objectRequiredFields}" />
<input type="hidden" name="DynaformRequiredFields" id="DynaformRequiredFields" value="{$form_objectRequiredFields}" />
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class='FormTitle' colspan="2" align="">{$form.TITLE}</td>
</tr>
<tr style="display: none">
<td colspan="2">{$form.PRO_UID}</td>
</tr>
<tr style="display: none">
<td colspan="2">{$form.OP_UID}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OP_CASE_STATUS}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OP_CASE_STATUS}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$TAS_UID}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.TAS_UID}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$GROUP_USER}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.GROUP_USER_DROPDOWN}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OP_TASK_SOURCE}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OP_TASK_SOURCE}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OP_PARTICIPATE}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OP_PARTICIPATE}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OP_OBJ_TYPE}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OP_OBJ_TYPE}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$ALL}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.ALL}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$DYNAFORMS}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.DYNAFORMS}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$INPUTS}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.INPUTS}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OUTPUTS}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OUTPUTS}</td>
</tr>
<tr>
<td class='FormLabel' width="{$form_labelWidth}">{$OP_ACTION}</td>
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.OP_ACTION}</td>
</tr>
<tr>
<td class='FormButton' colspan="2" align="center">{$form.CREATE}</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
</div>
<script type="text/javascript">
{$form.JS}
</script>
</form>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="processes_EditObjectPermission" width="100%">
<dynaForm name="processes_EditObjectPermission" width="100%" enableTemplate="1">
<TITLE type="title">
<en>Edit Specific Permission</en>
<es><![CDATA[Nuevo permiso específico]]></es></TITLE>
</TITLE>
<LANG type="private"/>
<PRO_UID type="hidden"/>
<OP_UID type="hidden"/>
@@ -13,109 +13,201 @@
<option name="DRAFT">DRAFT</option>
<option name="TO_DO">TO_DO</option>
<option name="PAUSED">PAUSED</option>
<option name="COMPLETED">COMPLETED</option></en>
<es>Estado del Caso
<option name="">Todas las tareas</option>
</es>
<option name="COMPLETED">COMPLETED</option>
</en>
</OP_CASE_STATUS>
<TAS_UID type="dropdown" mode="edit"><![CDATA[
SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE
]]><en>Target Task<option name="">All Tasks</option></en>
<TAS_UID type="dropdown" mode="edit">
<![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]>
<en>Target Task
<option name="">All Tasks</option>
</en>
</TAS_UID>
<GROUP_USER type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM usersGroups
<GROUP_USER type="text" mode="view">
<en>Group or User</en>
</GROUP_USER>
<OP_TASK_SOURCE type="dropdown" mode="edit"><![CDATA[
SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE
]]><en>Origin Task<option name="">All Tasks</option></en>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER" />
<OP_TASK_SOURCE type="dropdown" mode="edit">
<![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en>Origin Task<option name="">All Tasks</option></en>
</OP_TASK_SOURCE>
<OP_PARTICIPATE type="yesno" defaultvalue="1" mode="edit">
<en>Participation required?</en>
</OP_PARTICIPATE>
<OP_OBJ_TYPE type="dropdown" mode="edit" dependentfields="OP_OBJ_UID">
<en>Type
<option name="ANY">All</option>
<option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option></en>
<option name="ANY">All</option>
<option name="DYNAFORM">Dynaform</option>
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option>
</en>
</OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allObjects
<en>Object<option name="">All</option></en>
SELECT * FROM allObjects
<en>Object
<option name="">All</option>
</en>
</ALL>
<DYNAFORMS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allDynaforms
SELECT * FROM allDynaforms
<en>DynaForm<option name="">All</option></en>
</DYNAFORMS>
<INPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allInputs
SELECT * FROM allInputs
<en>Input Document<option name="">All</option></en>
</INPUTS>
<OUTPUTS type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM allOutputs
SELECT * FROM allOutputs
<en>Output Document<option name="">All</option></en>
</OUTPUTS>
<OP_ACTION type="dropdown" mode="edit">
<en>Permission<option name="VIEW">View</option><option name="BLOCK">Block</option></en>
<en>Permission<option name="VIEW">View</option><option name="BLOCK">Block</option><option name="DELETE">Delete</option></en>
</OP_ACTION>
<CREATE type="button" onclick="saveObjectPermission(this.form);">
<en>Save</en>
</CREATE>
<ID_DELETE type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = [];
var getOptions = function() {
var oAux = getField('OP_ACTION');
for (var i = 0; i < oAux.options.length; i++) {
if (oAux.options[i].value != 'DELETE') {
aOptions.push({label:oAux.options[i].text, value: oAux.options[i].value});
}
}
};
var rebuildOptionsWhenLoad = function(sType) {
var selectedValue = getField('OP_ACTION').value;
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
}
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
break
default:
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
}
break;
}
oAux.value = selectedValue;
};
var rebuildOptions = function(sType) {
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
oAux.options.add(oOption);
break
default:
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
break;
}
};
if(getField('OP_OBJ_TYPE').value=='ANY')
{ hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
}
if(getField('OP_OBJ_TYPE').value=='DYNAFORM')
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
}
if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
}
if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
}
getOptions();
rebuildOptionsWhenLoad(getField('OP_OBJ_TYPE').value);
leimnud.event.add(document.getElementById('form[OP_OBJ_TYPE]'), 'change', function() {
if(getField('OP_OBJ_TYPE').value=='DYNAFORM')
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'DYNAFORMS' );
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'DYNAFORMS' );
}
if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'INPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'INPUTS' );
}
if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OUTPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OUTPUTS' );
}
if(getField('OP_OBJ_TYPE').value=='ANY')
{ hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
}
rebuildOptions(getField('OP_OBJ_TYPE').value);
});
leimnud.event.add(document.getElementById('form[OP_CASE_STATUS]'), 'change', function() {
@@ -123,15 +215,15 @@ leimnud.event.add(document.getElementById('form[OP_CASE_STATUS]'), 'change', fun
var origin = document.getElementById('form[OP_TASK_SOURCE]');
var participate = document.getElementById('form[OP_PARTICIPATE]');
if (document.getElementById('form[OP_CASE_STATUS]').value=='COMPLETED')
{
hideRowById(target);
hideRowById(origin);
{
hideRowById(target);
hideRowById(origin);
hideRowById(participate);
}
}
else
{
showRowById(target);
showRowById(origin);
{
showRowById(target);
showRowById(origin);
showRowById(participate);
}
});

View File

@@ -1,4 +1,4 @@
<form id="{$form_id}" name="{$form_name}" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit='return validateForm("{$form_objectRequiredFields}".parseJSON());'>
<form id="{$form_id}" name="{$form_name}" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit='return validateForm("{$form_objectRequiredFields}".parseJSON());'>
<div class="borderForm" style="padding-left: 0pt; padding-right: 0pt;">
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<div class="content" style="">
@@ -17,57 +17,57 @@
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OP_CASE_STATUS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OP_CASE_STATUS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_CASE_STATUS}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_CASE_STATUS}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$TAS_UID}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.TAS_UID} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.TAS_UID}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.TAS_UID}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$GROUP_USER}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.GROUP_USER} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.GROUP_USER}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.GROUP_USER_DROPDOWN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OP_TASK_SOURCE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OP_TASK_SOURCE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_TASK_SOURCE}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_TASK_SOURCE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OP_PARTICIPATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OP_PARTICIPATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_PARTICIPATE}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_PARTICIPATE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OP_OBJ_TYPE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OP_OBJ_TYPE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_OBJ_TYPE}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_OBJ_TYPE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$ALL}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.ALL} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.ALL}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.ALL}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$DYNAFORMS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.DYNAFORMS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.DYNAFORMS}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.DYNAFORMS}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$INPUTS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.INPUTS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.INPUTS}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.INPUTS}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUTPUTS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUTPUTS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUTPUTS}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUTPUTS}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OP_ACTION}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OP_ACTION} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_ACTION}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OP_ACTION}</td>
</tr>
<tr>
<td class="FormButton" colspan="2" align="center"><br/> {$form.CREATE} &nbsp; {$form.BTN_CANCEL}</td>
@@ -82,4 +82,4 @@
<script type="text/javascript">
{$form.JS}
</script>
</form>
</form>

View File

@@ -6,12 +6,14 @@
<LANG type="private"/>
<PRO_UID type="hidden"/>
<OP_CASE_STATUS type="dropdown" mode="edit">
<en>Status Case<option name="ALL">All</option>
<option name="DRAFT">DRAFT</option>
<option name="TO_DO">TO DO</option>
<option name="PAUSED">PAUSED</option>
<option name="COMPLETED">COMPLETED</option>
<en>Status Case
<option name="ALL">All</option>
<option name="DRAFT">DRAFT</option>
<option name="TO_DO">TO DO</option>
<option name="PAUSED">PAUSED</option>
<option name="COMPLETED">COMPLETED</option>
</en>
</OP_CASE_STATUS>
@@ -21,11 +23,13 @@
<option name="">All Tasks</option>
</en>
</TAS_UID>
<GROUP_USER type="dropdown" mode="edit" sqlConnection="dbarray">
SELECT * FROM usersGroups
<GROUP_USER type="text" mode="view">
<en>Group or User</en>
</GROUP_USER>
<GROUP_USER_DROPDOWN type="title" mode="view" enableHtml="1" label="@#GROUP_USER" />
<OP_TASK_SOURCE type="dropdown" mode="edit">
<![CDATA[SELECT TAS_UID, CON_VALUE AS TAS_TITLE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = @@LANG) WHERE PRO_UID = @@PRO_UID AND TAS_TYPE = 'NORMAL' ORDER BY TAS_TITLE]]><en>Origin Task<option name="">All Tasks</option></en>
</OP_TASK_SOURCE>
@@ -69,7 +73,7 @@
<CREATE type="button" onclick="saveObjectPermission(this.form);">
<en>Create</en>
<es>Create</es><pt>Criar</pt></CREATE>
</CREATE>
<ID_DELETE type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = [];
@@ -213,10 +217,10 @@ rebuildOptions(vValue);
/*
var dynaformOnload = function()
{ var oAux = document.getElementById('form[TASKS]');
if(document.getElementById('form[PROCESS]').value=='')
if(document.getElementById('form[PROCESS]').value=='')
hideRowById(oAux);
else
showRowById(oAux);
showRowById(oAux);
};
*/
leimnud.event.add(document.getElementById('form[OP_CASE_STATUS]'), 'change', function() {
@@ -224,15 +228,15 @@ leimnud.event.add(document.getElementById('form[OP_CASE_STATUS]'), 'change', fun
var origin = document.getElementById('form[OP_TASK_SOURCE]');
var participate = document.getElementById('form[OP_PARTICIPATE]');
if (document.getElementById('form[OP_CASE_STATUS]').value=='COMPLETED')
{
hideRowById(target);
hideRowById(origin);
{
hideRowById(target);
hideRowById(origin);
hideRowById(participate);
}
}
else
{
showRowById(target);
showRowById(origin);
{
showRowById(target);
showRowById(origin);
showRowById(participate);
}
});
@@ -242,4 +246,4 @@ function cancel(){
}
]]></JS>
</dynaForm>
</dynaForm>

View File

@@ -423,6 +423,28 @@
define('SERVER_NAME', $_SERVER ['SERVER_NAME']);
define('SERVER_PORT', $_SERVER ['SERVER_PORT']);
// verify configuration for rest service
if ($isRestRequest) {
// disable until confirm that rest is enabled & configured on rest-config.ini file
$isRestRequest = false;
$confFile = '';
// try load and getting rest configuration
if (file_exists(PATH_DATA_SITE . 'rest-config.ini')) {
$confFile = PATH_DATA_SITE . 'rest-config.ini';
} elseif (file_exists(PATH_CONFIG . 'rest-config.ini')) {
$confFile = PATH_CONFIG . 'rest-config.ini';
}
if (! empty($confFile) && $restConfig = @parse_ini_file($confFile, true)) {
if (array_key_exists('enable_service', $restConfig)) {
if ($restConfig['enable_service'] == 'true' || $restConfig['enable_service'] == '1') {
$isRestRequest = true; // rest service enabled
}
}
}
}
// load Plugins base class
G::LoadClass('plugin');
@@ -575,10 +597,6 @@
$isControllerCall = true;
}
}
// var_dump(SYS_SYS);
// var_dump(SYS_TARGET);
// var_dump($isRestRequest);
// die;
if (!$isControllerCall && ! file_exists($phpFile) && ! $isRestRequest) {
$_SESSION['phpFileNotFound'] = $_SERVER['REQUEST_URI'];
@@ -707,7 +725,7 @@
$controller->setHttpRequestData($_REQUEST);
$controller->call($controllerAction);
} elseif ($isRestRequest) {
G::dispatchRestService(SYS_TARGET);
G::dispatchRestService(SYS_TARGET, $restConfig);
} else {
require_once $phpFile;
}