Extended Property for Tasks
This commit is contained in:
@@ -297,6 +297,26 @@ class caseSchedulerPlugin {
|
|||||||
$this->sActionGetFields = $sActionGetFields;
|
$this->sActionGetFields = $sActionGetFields;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class taskExtendedProperty {
|
||||||
|
var $sNamespace;
|
||||||
|
var $sPage;
|
||||||
|
var $sName;
|
||||||
|
var $sIcon;
|
||||||
|
/**
|
||||||
|
* This function is the constructor of the taskExtendedProperty class
|
||||||
|
* @param string $sNamespace
|
||||||
|
* @param string $sPage
|
||||||
|
* @param string $sName
|
||||||
|
* @param string $sIcon
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function __construct( $sNamespace, $sPage, $sName, $sIcon ) {
|
||||||
|
$this->sNamespace = $sNamespace;
|
||||||
|
$this->sPage = $sPage;
|
||||||
|
$this->sName = $sName;
|
||||||
|
$this->sIcon = $sIcon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class PMPlugin {
|
class PMPlugin {
|
||||||
var $sNamespace;
|
var $sNamespace;
|
||||||
@@ -516,4 +536,13 @@ class PMPlugin {
|
|||||||
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||||
$oPluginRegistry->registerCaseSchedulerPlugin( $this->sNamespace, $sActionId, $sActionForm, $sActionSave, $sActionExecute, $sActionGetFields );
|
$oPluginRegistry->registerCaseSchedulerPlugin( $this->sNamespace, $sActionId, $sActionForm, $sActionSave, $sActionExecute, $sActionGetFields );
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* With this function we can register a Dashboard Page for Cases Dashboard
|
||||||
|
* @param string $sPage
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function registerTaskExtendedProperty( $sPage, $sName, $sIcon="") {
|
||||||
|
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||||
|
$oPluginRegistry->registerTaskExtendedProperty ( $this->sNamespace, $sPage, $sName, $sIcon );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -79,6 +79,7 @@ class PMPluginRegistry {
|
|||||||
private $_aCSSStyleSheets = array();
|
private $_aCSSStyleSheets = array();
|
||||||
private $_aToolbarFiles = array();
|
private $_aToolbarFiles = array();
|
||||||
private $_aCaseSchedulerPlugin = array();
|
private $_aCaseSchedulerPlugin = array();
|
||||||
|
private $_aTaskExtendedProperties = array();
|
||||||
|
|
||||||
static private $instance = NULL;
|
static private $instance = NULL;
|
||||||
|
|
||||||
@@ -148,8 +149,8 @@ class PMPluginRegistry {
|
|||||||
function registerPlugin( $sNamespace, $sFilename = null)
|
function registerPlugin( $sNamespace, $sFilename = null)
|
||||||
{
|
{
|
||||||
$sClassName = $sNamespace . 'plugin';
|
$sClassName = $sNamespace . 'plugin';
|
||||||
//if ( isset( $this->_aPluginDetails[$sNamespace] ) )
|
if ( isset( $this->_aPluginDetails[$sNamespace] ) )
|
||||||
// return;
|
return;
|
||||||
//require_once ( $sFilename );
|
//require_once ( $sFilename );
|
||||||
$plugin = new $sClassName ($sNamespace, $sFilename);
|
$plugin = new $sClassName ($sNamespace, $sFilename);
|
||||||
$detail = new pluginDetail (
|
$detail = new pluginDetail (
|
||||||
@@ -165,9 +166,9 @@ class PMPluginRegistry {
|
|||||||
$detail->aWorkspaces = $plugin->aWorkspaces;
|
$detail->aWorkspaces = $plugin->aWorkspaces;
|
||||||
if ( isset ($plugin->bPrivate) )
|
if ( isset ($plugin->bPrivate) )
|
||||||
$detail->bPrivate = $plugin->bPrivate;
|
$detail->bPrivate = $plugin->bPrivate;
|
||||||
if ( isset( $this->_aPluginDetails[$sNamespace] ) ){
|
//if ( isset( $this->_aPluginDetails[$sNamespace] ) ){
|
||||||
$detail->enabled=$this->_aPluginDetails[$sNamespace]->enabled;
|
// $detail->enabled=$this->_aPluginDetails[$sNamespace]->enabled;
|
||||||
}
|
//}
|
||||||
$this->_aPluginDetails[$sNamespace] = $detail;
|
$this->_aPluginDetails[$sNamespace] = $detail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,6 +275,12 @@ class PMPluginRegistry {
|
|||||||
if ( $detail->sNamespace == $sNamespace )
|
if ( $detail->sNamespace == $sNamespace )
|
||||||
unset ( $this->_aCaseSchedulerPlugin[ $key ] );
|
unset ( $this->_aCaseSchedulerPlugin[ $key ] );
|
||||||
}
|
}
|
||||||
|
foreach ( $this->_aTaskExtendedProperties as $key=>$detail ) {
|
||||||
|
if ( $detail->sNamespace == $sNamespace )
|
||||||
|
unset ( $this->_aTaskExtendedProperties[ $key ] );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -921,4 +928,35 @@ class PMPluginRegistry {
|
|||||||
function getCaseSchedulerPlugins( ) {
|
function getCaseSchedulerPlugins( ) {
|
||||||
return $this->_aCaseSchedulerPlugin;
|
return $this->_aCaseSchedulerPlugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a Task Extended property page in the singleton
|
||||||
|
*
|
||||||
|
* @param unknown_type $sNamespace
|
||||||
|
* @param unknown_type $sPage
|
||||||
|
*/
|
||||||
|
|
||||||
|
function registerTaskExtendedProperty($sNamespace, $sPage, $sName, $sIcon ) {
|
||||||
|
$found = false;
|
||||||
|
foreach ( $this->_aTaskExtendedProperties as $row=>$detail ) {
|
||||||
|
if ( $sPage == $detail->sPage && $sNamespace == $detail->sNamespace ){
|
||||||
|
$detail->sName=$sName;
|
||||||
|
$detail->sIcon=$sIcon;
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !$found ) {
|
||||||
|
$taskExtendedProperty = new taskExtendedProperty ($sNamespace, $sPage, $sName, $sIcon);
|
||||||
|
$this->_aTaskExtendedProperties[] = $taskExtendedProperty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return all dashboard pages
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function getTaskExtendedProperties() {
|
||||||
|
return $this->_aTaskExtendedProperties;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -354,6 +354,16 @@ class processMap {
|
|||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
$oPM->derivation = array('Sequential', 'Evaluate (manual)', 'Evaluate (auto)', 'Parallel (fork)', 'Parallel by evaluation (fork)', 'Parallel (sequential join)', 'Parallel (sequential main join)');
|
$oPM->derivation = array('Sequential', 'Evaluate (manual)', 'Evaluate (auto)', 'Parallel (fork)', 'Parallel by evaluation (fork)', 'Parallel (sequential join)', 'Parallel (sequential main join)');
|
||||||
|
|
||||||
|
//Load extended task properties from plugin. By JHL Jan 18, 2011
|
||||||
|
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||||
|
$activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
|
||||||
|
$oPM->taskOptions = array();
|
||||||
|
foreach($activePluginsForTaskProperties as $key => $taskPropertiesInfo){
|
||||||
|
$taskOption['title']=$taskPropertiesInfo->sName;
|
||||||
|
$taskOption['id']=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
|
||||||
|
$oPM->taskOptions[]=$taskOption;
|
||||||
|
}
|
||||||
|
|
||||||
$oJSON = new Services_JSON ( );
|
$oJSON = new Services_JSON ( );
|
||||||
return $oJSON->encode($oPM);
|
return $oJSON->encode($oPM);
|
||||||
@@ -1293,6 +1303,21 @@ class processMap {
|
|||||||
case 7 :
|
case 7 :
|
||||||
$sFilename = 'tasks/tasks_Notifications.xml';
|
$sFilename = 'tasks/tasks_Notifications.xml';
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
print "<h1>$iForm</h1>";
|
||||||
|
//if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011
|
||||||
|
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||||
|
$activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
|
||||||
|
$oPM->taskOptions = array();
|
||||||
|
foreach($activePluginsForTaskProperties as $key => $taskPropertiesInfo){
|
||||||
|
$id=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
|
||||||
|
if($id==$iForm){
|
||||||
|
$sFilename=$taskPropertiesInfo->sPage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//$sFilename = 'tasks/tasks_Owner.xml';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
$oTask = new Task ( );
|
$oTask = new Task ( );
|
||||||
$aFields = $oTask->load($sTaskUID);
|
$aFields = $oTask->load($sTaskUID);
|
||||||
|
|||||||
@@ -1533,6 +1533,7 @@ var processmap=function(){
|
|||||||
|
|
||||||
this.tmp.propertiesPanel = panel =new leimnud.module.panel();
|
this.tmp.propertiesPanel = panel =new leimnud.module.panel();
|
||||||
var data = this.data.db.task[index];
|
var data = this.data.db.task[index];
|
||||||
|
|
||||||
panel.options={
|
panel.options={
|
||||||
limit:true,
|
limit:true,
|
||||||
size:{w:600,h:430},
|
size:{w:600,h:430},
|
||||||
@@ -1552,6 +1553,7 @@ var processmap=function(){
|
|||||||
modal:true
|
modal:true
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
panel.tab={
|
panel.tab={
|
||||||
width :170,
|
width :170,
|
||||||
optWidth:160,
|
optWidth:160,
|
||||||
@@ -1584,7 +1586,20 @@ var processmap=function(){
|
|||||||
noClear : true
|
noClear : true
|
||||||
}]
|
}]
|
||||||
};
|
};
|
||||||
|
var taskOptions = this.data.db.taskOptions;
|
||||||
|
this.loadExtendedProperties = function(){
|
||||||
|
for(i=0;i<taskOptions.length;i++){
|
||||||
|
anElement={
|
||||||
|
title : taskOptions[i].title,
|
||||||
|
content : this.parent.closure({instance:this,method:iForm,args:[panel,index,taskOptions[i].id]}),
|
||||||
|
noClear : true
|
||||||
|
};
|
||||||
|
panel.tab.options.push(anElement);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.loadExtendedProperties();
|
||||||
panel.make();
|
panel.make();
|
||||||
|
|
||||||
},args:index})}
|
},args:index})}
|
||||||
]:
|
]:
|
||||||
[
|
[
|
||||||
|
|||||||
Reference in New Issue
Block a user