diff --git a/workflow/engine/classes/class.pmDashlet.php b/workflow/engine/classes/class.pmDashlet.php index db0b725fe..7f3ff876a 100644 --- a/workflow/engine/classes/class.pmDashlet.php +++ b/workflow/engine/classes/class.pmDashlet.php @@ -107,20 +107,39 @@ class PMDashlet extends DashletInstance implements DashletInterface { public function getDashletsInstancesForUser($userUid) { try { + $dashletsInstances = array(); // Include required classes - // + require_once 'classes/model/Department.php'; // Check for "public" dashlets // ToDo: Next release // Check for the direct assignments // ToDo: Next release // Check for department assigments - // + $departmentInstance = new Department(); + $departments = $departmentInstance->getDepartmentsForUser($userUid); + foreach ($departments as $depUid => $department) { + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); + $criteria->addSelectColumn(DashletPeer::DAS_TITLE); + $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT'); + $criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $depUid); + $dataset = DashletInstancePeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + while ($row = $dataset->getRow()) { + if (!isset($dashletsInstances[$row['DAS_INS_UID']])) { + $dashletsInstances[$row['DAS_INS_UID']] = $row; + } + $dataset->next(); + } + } // Check for group assignments // ToDo: Next release // Check for role assigments // ToDo: Next release // Check for permission assigments // ToDo: Next release + return array_values($dashletsInstances); } catch (Exception $error) { throw $error; diff --git a/workflow/engine/classes/model/Department.php b/workflow/engine/classes/model/Department.php index 1501fc72a..331c79e88 100755 --- a/workflow/engine/classes/model/Department.php +++ b/workflow/engine/classes/model/Department.php @@ -591,4 +591,31 @@ function getDepartments( $DepParent ) { return $aRows; } + function getDepartmentsForUser($userUid) { + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn(UsersPeer::DEP_UID); + $criteria->addAsColumn('DEP_TITLE', 'C.CON_VALUE'); + $criteria->addAlias('C', 'CONTENT'); + $criteria->addJoin(UsersPeer::DEP_UID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN); + $delimiter = DBAdapter::getStringDelimiter(); + $conditions = array(); + $conditions [] = array(DepartmentPeer::DEP_UID, 'C.CON_ID'); + $conditions [] = array('C.CON_CATEGORY', $delimiter . 'DEPO_TITLE' . $delimiter); + $conditions [] = array('C.CON_LANG', $delimiter . SYS_LANG . $delimiter); + $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN); + $criteria->add(UsersPeer::USR_UID, $userUid); + $criteria->add(UsersPeer::DEP_UID, '', Criteria::NOT_EQUAL); + $dataset = DepartmentPeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + $departments = array(); + while ($row = $dataset->getRow()) { + if (!isset($departments[$row['DEP_UID']])) { + $departments[$row['DEP_UID']] = $row; + } + $dataset->next(); + } + return $departments; + } + } // Department diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js index c2296dafa..48165870b 100755 --- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js +++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js @@ -259,7 +259,7 @@ var dynaformEditor={ clientWinSize = getClientWindowSize(); startJSCodePress(); jsEditor = CodeMirror.fromTextArea('form[JS]', { - height: (clientWinSize.height - 120) + "px", + height: (clientWinSize.height - 140) + "px", width: (_BROWSER.name == 'msie' ? '100%' : '98%'), parserfile: ["tokenizejavascript.js", "parsejavascript.js"], stylesheet: ["css/jscolors.css"], diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_JSEditor.xml b/workflow/engine/xmlform/dynaforms/dynaforms_JSEditor.xml index e96104223..58f7bbe50 100755 --- a/workflow/engine/xmlform/dynaforms/dynaforms_JSEditor.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_JSEditor.xml @@ -20,7 +20,7 @@ SELECT XMLNODE_NAME AS UID, XMLNODE_NAME AS NAME FROM dynaForm WHERE TYPE = "jav Code - + +]]> \ No newline at end of file