Save and load the additional fields for the dashlets
This commit is contained in:
@@ -5,40 +5,10 @@ require_once 'interfaces/dashletInterface.php';
|
||||
class dashletOpenVSCompleted implements DashletInterface {
|
||||
|
||||
function setup($config) {
|
||||
/*
|
||||
Array
|
||||
(
|
||||
[DAS_UID] => 00000000000000000000000000000001
|
||||
[DAS_CLASS] => dashletOpenVSCompleted
|
||||
[DAS_TITLE] => Open Cases VS Complete Cases
|
||||
[DAS_DESCRIPTION] => Open Cases VS Complete Cases
|
||||
[DAS_VERSION] => 1.0
|
||||
[DAS_CREATE_DATE] => 2011-10-28 00:00:00
|
||||
[DAS_UPDATE_DATE] => 2011-10-28 00:00:00
|
||||
[DAS_STATUS] => 1
|
||||
[DAS_INS_UID] => 00000000000000000000000000000001
|
||||
[DAS_INS_TYPE] => OPEN_CASES
|
||||
[DAS_INS_CONTEXT_TIME] => MONTH
|
||||
[DAS_INS_START_DATE] =>
|
||||
[DAS_INS_END_DATE] =>
|
||||
[DAS_INS_OWNER_TYPE] => DEPARTMENT
|
||||
[DAS_INS_OWNER_UID] => 2502663244e6f5e1e3c2254024148892
|
||||
[DAS_INS_PROCESSES] =>
|
||||
[DAS_INS_TASKS] =>
|
||||
[DAS_INS_ADDITIONAL_PROPERTIES] =>
|
||||
[DAS_INS_CREATE_DATE] => 2011-10-28 00:00:00
|
||||
[DAS_INS_UPDATE_DATE] => 2011-10-28 00:00:00
|
||||
[DAS_INS_STATUS] => 1
|
||||
)
|
||||
*/
|
||||
|
||||
//$this->w = $config['w'];
|
||||
//loadData
|
||||
$thisYear = date('Y');
|
||||
$lastYear = $thisYear -1;
|
||||
$thisMonth = date('M');
|
||||
$lastMonth = date('M', strtotime( "31 days ago") );
|
||||
//print "$thisMonth $lastMonth"; die;
|
||||
|
||||
$todayIni = date('Y-m-d H:i:s', strtotime( "today 00:00:00"));
|
||||
$todayEnd = date('Y-m-d H:i:s', strtotime( "today 23:59:59"));
|
||||
@@ -115,18 +85,52 @@ Array
|
||||
return true;
|
||||
}
|
||||
|
||||
function getAdditionalFields() {
|
||||
$additionalFields = array();
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_RED_FROM';
|
||||
$greenFrom->fieldLabel = 'Red Starts In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_RED_TO';
|
||||
$greenFrom->fieldLabel = 'Red Ends In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_YELLOW_FROM';
|
||||
$greenFrom->fieldLabel = 'Yellow Starts In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_YELLOW_TO';
|
||||
$greenFrom->fieldLabel = 'Yellow Ends In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_GREEN_FROM';
|
||||
$greenFrom->fieldLabel = 'Green Starts In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
$greenFrom = new stdclass();
|
||||
$greenFrom->xtype = 'textfield';
|
||||
$greenFrom->name = 'DAS_GREEN_TO';
|
||||
$greenFrom->fieldLabel = 'Green Ends In';
|
||||
$greenFrom->width = 50;
|
||||
$additionalFields[] = $greenFrom;
|
||||
return $additionalFields;
|
||||
}
|
||||
|
||||
function render ($width = 300) {
|
||||
G::LoadClass('pmGauge');
|
||||
$g = new pmGauge();
|
||||
$g->w = $width;
|
||||
$g->value = $this->value;
|
||||
$g->maxValue = 100;
|
||||
$g->greenFrom = 90;
|
||||
$g->greenTo = 100;
|
||||
$g->yellowFrom = 70;
|
||||
$g->yellowTo = 90;
|
||||
$g->redFrom = 100;
|
||||
$g->redTo = 100;
|
||||
|
||||
$g->greenFrom = 50;
|
||||
$g->greenTo = 100;
|
||||
|
||||
@@ -7,16 +7,17 @@ require_once 'model/DashletInstance.php';
|
||||
class PMDashlet extends DashletInstance implements DashletInterface {
|
||||
|
||||
// Own properties
|
||||
private $dashletInstance;
|
||||
private $dashletObject;
|
||||
|
||||
// Interface functions
|
||||
|
||||
public function setup($dasInsUid) {
|
||||
try {
|
||||
$dashletInstance = $this->getDashletInstance($dasInsUid);
|
||||
G::LoadClass($dashletInstance['DAS_CLASS']);
|
||||
$this->dashletObject = new $dashletInstance['DAS_CLASS']();
|
||||
$this->dashletObject->setup($dashletInstance);
|
||||
$this->dashletInstance = $this->loadDashletInstance($dasInsUid);
|
||||
G::LoadClass($this->dashletInstance['DAS_CLASS']);
|
||||
$this->dashletObject = new $this->dashletInstance['DAS_CLASS']();
|
||||
$this->dashletObject->setup($this->dashletInstance);
|
||||
}
|
||||
catch (Exception $error) {
|
||||
throw $error;
|
||||
@@ -35,6 +36,27 @@ class PMDashlet extends DashletInstance implements DashletInterface {
|
||||
}
|
||||
}
|
||||
|
||||
public function getAdditionalFields() {
|
||||
try {
|
||||
//Change this in the next release
|
||||
G::LoadClass('dashletOpenVSCompleted');
|
||||
return dashletOpenVSCompleted::getAdditionalFields();
|
||||
}
|
||||
catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
}
|
||||
|
||||
// Getter and Setters
|
||||
|
||||
public function getDashletInstance() {
|
||||
return $this->dashletInstance;
|
||||
}
|
||||
|
||||
public function getDashletObject() {
|
||||
return $this->dashletObject;
|
||||
}
|
||||
|
||||
// Own functions
|
||||
|
||||
public function getDashletsInstances($start = null, $limit = null) {
|
||||
@@ -99,9 +121,10 @@ class PMDashlet extends DashletInstance implements DashletInterface {
|
||||
}
|
||||
}
|
||||
|
||||
public function getDashletInstance($dasInsUid) {
|
||||
public function loadDashletInstance($dasInsUid) {
|
||||
try {
|
||||
$dashletInstance = $this->load($dasInsUid);
|
||||
//Load data from the serialized field
|
||||
$dashlet = new Dashlet();
|
||||
$dashletFields = $dashlet->load($dashletInstance['DAS_UID']);
|
||||
return array_merge($dashletFields, $dashletInstance);
|
||||
|
||||
@@ -4,5 +4,6 @@ interface DashletInterface {
|
||||
|
||||
public function setup($dasInsUid);
|
||||
public function render();
|
||||
public function getAdditionalFields();
|
||||
|
||||
}
|
||||
@@ -16,6 +16,10 @@ require_once 'classes/model/om/BaseDashletInstance.php';
|
||||
*/
|
||||
class DashletInstance extends BaseDashletInstance {
|
||||
|
||||
private $validFields = array('DAS_INS_UID', 'DAS_UID', 'DAS_INS_TYPE', 'DAS_INS_CONTEXT_TIME', 'DAS_INS_START_DATE', 'DAS_INS_END_DATE', 'DAS_INS_OWNER_TYPE',
|
||||
'DAS_INS_OWNER_UID', 'DAS_INS_PROCESSES', 'DAS_INS_TASKS', ' DAS_INS_CREATE_DATE', 'DAS_INS_UPDATE_DATE', 'DAS_INS_STATUS',
|
||||
'pmos_generik', 'ys-admin-tabpanel', 'PHPSESSID');
|
||||
|
||||
public function load($dasInsUid) {
|
||||
try {
|
||||
$dashletInstance = DashletInstancePeer::retrieveByPK($dasInsUid);
|
||||
@@ -31,6 +35,19 @@ class DashletInstance extends BaseDashletInstance {
|
||||
}
|
||||
|
||||
public function createOrUpdate($data) {
|
||||
$additionalFields = array();
|
||||
foreach ($data as $field => $value) {
|
||||
if (!in_array($field, $this->validFields)) {
|
||||
$additionalFields[$field] = $value;
|
||||
unset($data[$field]);
|
||||
}
|
||||
}
|
||||
if (!empty($additionalFields)) {
|
||||
$data['DAS_INS_ADDITIONAL_PROPERTIES'] = serialize($additionalFields);
|
||||
}
|
||||
else {
|
||||
$data['DAS_INS_ADDITIONAL_PROPERTIES'] = '';
|
||||
}
|
||||
$connection = Propel::getConnection(DashletInstancePeer::DATABASE_NAME);
|
||||
try {
|
||||
if (!isset($data['DAS_INS_UID'])) {
|
||||
|
||||
@@ -928,7 +928,7 @@ abstract class BaseDashletInstance extends BaseObject implements Persistent {
|
||||
*/
|
||||
public function getByName($name, $type = BasePeer::TYPE_PHPNAME)
|
||||
{
|
||||
$pos = DashletInstancePeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
|
||||
$pos = DashletInstancePeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);var_dump($name,$pos);die();
|
||||
return $this->getByPosition($pos);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,10 +109,13 @@ class Dashboard extends Controller {
|
||||
$data->DAS_INS_UID = '';
|
||||
}
|
||||
if ($data->DAS_INS_UID != '') {
|
||||
$this->setJSVar('dashletInstance', $this->pmDashlet->getDashletInstance($data->DAS_INS_UID));
|
||||
$this->pmDashlet->setup($data->DAS_INS_UID);
|
||||
$this->setJSVar('dashletInstance', $this->pmDashlet->getDashletInstance());
|
||||
$this->setJSVar('additionaFields', $this->pmDashlet->getAdditionalFields());
|
||||
}
|
||||
else {
|
||||
$this->setJSVar('dashletInstance', new stdclass());
|
||||
$this->setJSVar('additionaFields', $this->pmDashlet->getAdditionalFields());
|
||||
}
|
||||
G::RenderPage('publish', 'extJs');
|
||||
return null;
|
||||
|
||||
@@ -9,18 +9,7 @@ dashletInstance.form = {
|
||||
Ext.Ajax.request({
|
||||
url: "saveDashletInstance",
|
||||
method: "POST",
|
||||
params:{"DAS_INS_UID": hiddenDasInsUID.getValue(),
|
||||
"DAS_UID": cboDasUID.getValue(),
|
||||
"DAS_INS_TYPE": cboDasInsType.getValue(),
|
||||
"DAS_INS_CONTEXT_TIME": cboDasInsContextTime.getValue(),
|
||||
//"DAS_INS_START_DATE": txtDasInsStartDate.getValue().format(txtDasInsStartDate.format),
|
||||
//"DAS_INS_END_DATE": txtDasInsEndDate.getValue().format(txtDasInsEndDate.format),
|
||||
"DAS_INS_OWNER_TYPE": cboDasInsOwnerType.getValue(),
|
||||
"DAS_INS_OWNER_UID": cboDasInsOwnerUID.getValue()
|
||||
//,
|
||||
//"DAS_INS_PROCESSES": cboProcess.getValue(),
|
||||
//"DAS_INS_TASKS": cboTask.getValue()
|
||||
},
|
||||
params: dashletInstanceFrm.getForm().getFieldValues(),
|
||||
|
||||
success:function (result, request) {
|
||||
myMask.hide();
|
||||
@@ -42,18 +31,6 @@ dashletInstance.form = {
|
||||
});
|
||||
}
|
||||
|
||||
dashletInstanceFrmLoad = function () {
|
||||
if (dashletInstance.DAS_INS_UID) {
|
||||
hiddenDasInsUID.setValue(dashletInstance.DAS_INS_UID)
|
||||
cboDasUID.setValue(dashletInstance.DAS_UID);
|
||||
cboDasInsType.setValue(dashletInstance.DAS_INS_TYPE);
|
||||
cboDasInsContextTime.setValue(dashletInstance.DAS_INS_CONTEXT_TIME);
|
||||
cboDasInsOwnerType.setValue(dashletInstance.DAS_INS_OWNER_TYPE);
|
||||
|
||||
//cboDasInsOwnerUID.setValue(dashletInstance.DAS_INS_OWNER_UID);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
var storeDasUID = new Ext.data.Store({
|
||||
proxy: new Ext.data.HttpProxy({
|
||||
@@ -321,6 +298,19 @@ dashletInstance.form = {
|
||||
fieldLabel: "Task"
|
||||
});
|
||||
|
||||
var formFields = [hiddenDasInsUID,
|
||||
cboDasUID,
|
||||
cboDasInsType,
|
||||
cboDasInsContextTime,
|
||||
//txtDasInsStartDate,
|
||||
//txtDasInsEndDate,
|
||||
cboDasInsOwnerType,
|
||||
cboDasInsOwnerUID
|
||||
//cboProcess,
|
||||
//cboTask
|
||||
];
|
||||
formFields = formFields.concat(additionaFields);
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
var dashletInstanceFrm = new Ext.form.FormPanel({
|
||||
id: "dashletInstanceFrm",
|
||||
@@ -336,18 +326,7 @@ dashletInstance.form = {
|
||||
|
||||
title: "New Dashboard Instance",
|
||||
|
||||
items: [hiddenDasInsUID,
|
||||
cboDasUID,
|
||||
cboDasInsType,
|
||||
cboDasInsContextTime,
|
||||
//txtDasInsStartDate,
|
||||
//txtDasInsEndDate,
|
||||
cboDasInsOwnerType,
|
||||
cboDasInsOwnerUID
|
||||
//,
|
||||
//cboProcess,
|
||||
//cboTask
|
||||
],
|
||||
items: formFields,
|
||||
|
||||
buttonAlign: "right",
|
||||
buttons: [new Ext.Action({
|
||||
@@ -381,7 +360,7 @@ dashletInstance.form = {
|
||||
});
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
dashletInstanceFrmLoad();
|
||||
dashletInstanceFrm.getForm().setValues(dashletInstance);
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
var pnlMain = new Ext.Panel({
|
||||
|
||||
Reference in New Issue
Block a user