PM-321 Hacer funcionar el administrador del Cases List Builder SOLVED

- It don't have the functionality
- PM-322 Hacer funcionar el Cases List Builder.
- Files are added for cases list.
This commit is contained in:
Marco Antonio Nina
2014-09-22 15:14:49 -04:00
parent 64532ab4c0
commit fa84c1b8f4
9 changed files with 1684 additions and 6 deletions

View File

@@ -33,7 +33,7 @@ try {
$confReassignList = getReassignList();
// evaluates an action and the configuration for the list that will be rendered
$config = getAdditionalFields( $action, (class_exists( 'enterprisePlugin' ) ? $confCasesList : array ()) );
$config = getAdditionalFields( $action, $confCasesList );
$columns = $config['caseColumns'];
$readerFields = $config['caseReaderFields'];
$reassignColumns = $confReassignList['caseColumns'];

View File

@@ -0,0 +1,19 @@
<?php
global $RBAC;
if ($RBAC->userCanAccess("PM_SETUP") != 1 || $RBAC->userCanAccess("PM_SETUP_ADVANCE") != 1) {
G::SendTemporalMessage("ID_USER_HAVENT_RIGHTS_PAGE", "error", "labels");
exit(0);
}
$availableFields = array();
$oHeadPublisher = &headPublisher::getSingleton();
$oHeadPublisher->addExtJsScript( 'cases/casesListSetup', false ); //adding a javascript file .js
$oHeadPublisher->addContent( 'cases/casesListSetup' ); //adding a html file .html.
$oHeadPublisher->assignNumber("pageSize", 20); //sending the page size
$oHeadPublisher->assignNumber("availableFields", G::json_encode($availableFields));
G::RenderPage("publish", "extJs");

View File

@@ -0,0 +1,758 @@
<?php
/**
* Method defined and copied from processmaker/workflow/engine/classes/class.configuration.php
*
*/
function casesListDefaultFieldsAndConfig($action, $translation = 1)
{
$caseColumns = array();
$caseReaderFields = array();
switch ($action) {
case "draft":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DUE_DATE") : "**ID_DUE_DATE**", "dataIndex" => "DEL_TASK_DUE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PRIORITY") : "**ID_PRIORITY**", "dataIndex" => "DEL_PRIORITY", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "paused":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_THREAD_INDEX") : "**ID_THREAD_INDEX**", "dataIndex" => "APP_THREAD_INDEX", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DEL_INDEX") : "**ID_DEL_INDEX**", "dataIndex" => "DEL_INDEX", "width" => 80);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_FIRSTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_LASTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_USERNAME");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "APP_THREAD_INDEX");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "unassigned":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 40, "align" => "left");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DUE_DATE") : "**ID_DUE_DATE**", "dataIndex" => "DEL_TASK_DUE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 80);
//$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_COMPLETED_BY_USER") : "**ID_COMPLETED_BY_USER**", "dataIndex" => "APP_CURRENT_USER", "width" => 110);
//$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_FINISH_DATE") : "**ID_FINISH_DATE**", "dataIndex" => "APP_FINISH_DATE", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_FIRSTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_LASTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_USERNAME");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "sent":
case "participated":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_STATUS") : "**ID_STATUS**", "dataIndex" => "APP_STATUS", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_FIRSTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_LASTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_USERNAME");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "search":
case "simple_search":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 100);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
//$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 120 );
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CURRENT_USER") : "**ID_CURRENT_USER**", "dataIndex" => "APP_CURRENT_USER", "width" => 120, "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DELEGATION_DATE") : "**ID_DELEGATION_DATE**", "dataIndex" => "DEL_DELEGATE_DATE", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DUE_DATE") : "**ID_DUE_DATE**", "dataIndex" => "DEL_TASK_DUE_DATE", "width" => 80);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_STATUS") : "**ID_STATUS**", "dataIndex" => "APP_STATUS", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_DELEGATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "to_revise":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50,"hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CURRENT_USER") : "**ID_CURRENT_USER**", "dataIndex" => "APP_CURRENT_USER", "width" => 90, "sortable" => false);
//$caseColumns[] = array("header" => "Sent By", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
//$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PRIORITY") : "**ID_PRIORITY**", "dataIndex" => "DEL_PRIORITY", "width" => 50);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_STATUS") : "**ID_STATUS**", "dataIndex" => "APP_STATUS", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_FIRSTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_LASTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_USERNAME");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
//$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "to_reassign":
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CURRENT_USER") : "**ID_CURRENT_USER**", "dataIndex" => "APP_CURRENT_USER", "width" => 90, "sortable" => false);
//$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_STATUS") : "**ID_STATUS**", "dataIndex" => "APP_STATUS", "width" => 50);
$caseReaderFields[] = array("name" => "TAS_UID");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
//$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "gral":
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => "PreUsrUid", "dataIndex" => "PREVIOUS_USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CURRENT_USER") : "**ID_CURRENT_USER**", "dataIndex" => "APP_CURRENT_USER", "width" => 90, "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_STATUS") : "**ID_STATUS**", "dataIndex" => "APP_STATUS", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
case "todo":
default:
//todo
$caseColumns[] = array("header" => "#", "dataIndex" => "APP_NUMBER", "width" => 45, "align" => "center");
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SUMMARY") : "**ID_SUMMARY**", "dataIndex" => "CASE_SUMMARY", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASES_NOTES") : "**ID_CASES_NOTES**", "dataIndex" => "CASE_NOTES_COUNT", "width" => 45, "align" => "center", "sortable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_CASE") : "**ID_CASE**", "dataIndex" => "APP_TITLE", "width" => 150);
$caseColumns[] = array("header" => "UserUid", "dataIndex" => "USR_UID", "width" => 50, "hidden" => true, "hideable" => false);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PROCESS") : "**ID_PROCESS**", "dataIndex" => "APP_PRO_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_TASK") : "**ID_TASK**", "dataIndex" => "APP_TAS_TITLE", "width" => 120);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_SENT_BY") : "**ID_SENT_BY**", "dataIndex" => "APP_DEL_PREVIOUS_USER", "width" => 90);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_DUE_DATE") : "**ID_DUE_DATE**", "dataIndex" => "DEL_TASK_DUE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_LAST_MODIFY") : "**ID_LAST_MODIFY**", "dataIndex" => "APP_UPDATE_DATE", "width" => 110);
$caseColumns[] = array("header" => ($translation == 1)? G::LoadTranslation("ID_PRIORITY") : "**ID_PRIORITY**", "dataIndex" => "DEL_PRIORITY", "width" => 50);
$caseReaderFields[] = array("name" => "APP_UID");
$caseReaderFields[] = array("name" => "USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_UID");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_FIRSTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_LASTNAME");
$caseReaderFields[] = array("name" => "PREVIOUS_USR_USERNAME");
$caseReaderFields[] = array("name" => "DEL_INDEX");
$caseReaderFields[] = array("name" => "APP_NUMBER");
$caseReaderFields[] = array("name" => "APP_TITLE");
$caseReaderFields[] = array("name" => "APP_PRO_TITLE");
$caseReaderFields[] = array("name" => "APP_TAS_TITLE");
$caseReaderFields[] = array("name" => "APP_DEL_PREVIOUS_USER");
$caseReaderFields[] = array("name" => "DEL_TASK_DUE_DATE");
$caseReaderFields[] = array("name" => "APP_UPDATE_DATE");
$caseReaderFields[] = array("name" => "DEL_PRIORITY");
$caseReaderFields[] = array("name" => "APP_FINISH_DATE");
$caseReaderFields[] = array("name" => "APP_CURRENT_USER");
$caseReaderFields[] = array("name" => "APP_STATUS");
$caseReaderFields[] = array("name" => "CASE_SUMMARY");
$caseReaderFields[] = array("name" => "CASE_NOTES_COUNT");
break;
}
return array("caseColumns" => $caseColumns, "caseReaderFields" => $caseReaderFields, "rowsperpage" => 20, "dateformat" => "M d, Y");
}
function getDefaultConfig($action, $translation)
{
$config = new Configurations();
if (method_exists($config, "casesListDefaultFieldsAndConfig")) {
$arrayConfig = $config->casesListDefaultFieldsAndConfig($action, $translation);
} else {
$arrayConfig = casesListDefaultFieldsAndConfig($action, $translation);
}
return $arrayConfig;
}
function getDefaultFields($action, $translation)
{
$config = new Configurations();
if (method_exists($config, "casesListDefaultFieldsAndConfig")) {
$arrayConfig = $config->casesListDefaultFieldsAndConfig($action, $translation);
} else {
$arrayConfig = casesListDefaultFieldsAndConfig($action, $translation);
}
//Table APP_DELAY, fields
$appDelayField = array(
"APP_DELAY_UID",
//"PRO_UID",
//"APP_UID",
"APP_THREAD_INDEX",
"APP_DEL_INDEX",
"APP_TYPE",
//"APP_STATUS",
"APP_NEXT_TASK",
"APP_DELEGATION_USER",
"APP_ENABLE_ACTION_USER",
"APP_ENABLE_ACTION_DATE",
"APP_DISABLE_ACTION_USER",
"APP_DISABLE_ACTION_DATE",
"APP_AUTOMATIC_DISABLED_DATE"
);
$arrayField = array();
//Required fields for AppCacheView.php - addPMFieldsToCriteria()
$arrayField[] = array("name" => "APP_UID", "fieldType" => "key", "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_APP_UID") : "**ID_CASESLIST_APP_UID**", "align" => "left", "width" => 80);
$arrayField[] = array("name" => "DEL_INDEX", "fieldType" => "key" , "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_DEL_INDEX") : "**ID_CASESLIST_DEL_INDEX**", "align" => "left", "width" => 50);
$arrayField[] = array("name" => "USR_UID", "fieldType" => "case field", "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_USR_UID") : "**ID_CASESLIST_USR_UID**", "align" => "left", "width" => 100);
$arrayField[] = array("name" => "PREVIOUS_USR_UID", "fieldType" => "case field" , "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_PREVIOUS_USR_UID") : "**ID_CASESLIST_PREVIOUS_USR_UID**", "align" => "left", "width" => 100);
if (count($arrayConfig["caseColumns"]) > 0) {
foreach ($arrayConfig["caseColumns"] as $index1 => $value1) {
if (!isset($value1["hidden"])) {
$arrayAux1 = $value1;
$arrayAux2 = array();
foreach ($arrayAux1 as $index2 => $value2) {
$indexAux = $index2;
switch ($index2) {
case "dataIndex":
$indexAux = "name";
break;
case "header":
$indexAux = "label";
break;
}
$arrayAux2[$indexAux] = $value2;
}
$arrayAux2["fieldType"] = (!in_array($arrayAux2["name"], $appDelayField))? "case field" : "delay field";
$arrayAux2["align"] = (isset($arrayAux2["align"]))? $arrayAux2["align"] : "left";
$arrayAux2["width"] = (isset($arrayAux2["width"]))? intval($arrayAux2["width"]): 100;
$arrayField[] = $arrayAux2;
}
}
}
$arrayField = calculateGridIndex($arrayField);
return $arrayField;
}
function setAvailableFields($arrayAvailableField, $arrayField)
{
$i = 0;
$arrayFieldResult = array();
foreach ($arrayAvailableField as $index1 => $value1) {
$fieldType = "PM Table";
foreach ($arrayField as $index2 => $value2) {
if ($value2["name"] == $value1) {
$fieldType = $value2["fieldType"];
break;
}
}
$arrayFieldResult[$i] = array("name" => $value1, "gridIndex" => $i, "fieldType" => $fieldType);
$i = $i + 1;
}
return $arrayFieldResult;
}
function setCasesListFields($arrayCasesListField, $arrayField)
{
$i = 0;
$arrayFieldResult = array();
foreach ($arrayCasesListField as $index1 => $value1) {
$fieldName = $value1->name;
$fieldTypeAux = "PM Table";
$fieldLabelAux = $fieldName;
$fieldAlignAux = "left";
$fieldWidthAux = 100;
foreach ($arrayField as $index2 => $value2) {
if ($value2["name"] == $fieldName) {
$fieldTypeAux = $value2["fieldType"];
$fieldLabelAux = $value2["label"];
$fieldAlignAux = $value2["align"];
$fieldWidthAux = $value2["width"];
break;
}
}
$fieldType = $fieldTypeAux;
$fieldLabel = (isset($value1->label) && trim($value1->label) != "")? $value1->label : $fieldLabelAux;
$fieldAlign = (isset($value1->align) && trim($value1->align) != "")? $value1->align : $fieldAlignAux;
$fieldWidth = (isset($value1->width) && trim($value1->width) != "")? intval($value1->width) : $fieldWidthAux;
$arrayFieldResult[$i] = array("name" => $fieldName, "gridIndex" => $i, "fieldType" => $fieldType, "label" => $fieldLabel, "align" => $fieldAlign, "width" => $fieldWidth);
$i = $i + 1;
}
return $arrayFieldResult;
}
function fieldSet()
{
global $conf;
global $confCasesList;
global $action;
if (is_array($confCasesList)) {
$validConfig = isset($confCasesList["first"]) && isset($confCasesList["second"]);
} else {
$validConfig = false;
}
if (!$validConfig) {
$arrayField = getDefaultFields($action, 0);
$arrayConfig = getDefaultConfig($action, 0);
$result = genericJsonResponse("", array(), $arrayField, $arrayConfig["rowsperpage"], $arrayConfig["dateformat"]);
$conf->saveObject($result, "casesList", $action, "", "", "");
echo G::json_encode($result);
} else {
echo G::json_encode($confCasesList);
}
}
function fieldReset($translation)
{
global $action;
$arrayField = getDefaultFields($action, $translation);
$arrayConfig = getDefaultConfig($action, $translation);
$result = genericJsonResponse("", array(), $arrayField, $arrayConfig["rowsperpage"], $arrayConfig["dateformat"]);
echo G::json_encode($result);
}
function fieldComplete($translation)
{
global $action;
$arrayField = getDefaultFields($action, $translation);
$arrayConfig = getDefaultConfig($action, $translation);
//Get values from JSON request
$first = G::json_decode((isset($_POST["first"]))? $_POST["first"] : G::json_encode(array()));
$second = G::json_decode((isset($_POST["second"]))? $_POST["second"] : G::json_encode(array()));
$pmtable = (isset($_POST["pmtable"]))? $_POST["pmtable"] : "";
$rowsperpage = (isset($_POST["rowsperpage"]))? $_POST["rowsperpage"] : $arrayConfig["rowsperpage"];
$dateformat = (isset($_POST["dateformat"]) && !empty($_POST["dateformat"]))? $_POST["dateformat"] : $arrayConfig["dateformat"];
//Complete fields
foreach ($first as $index1 => $value1) {
$indexAux = 0;
$sw = 0;
foreach ($arrayField as $index2 => $value2) {
if ($value2["name"] == $value1) {
$indexAux = $index1;
$sw = 1;
break;
}
}
if ($sw == 1) {
unset($first[$indexAux]);
}
}
foreach ($arrayField as $index1 => $value1) {
$sw = 0;
foreach ($second as $index2 => $value2) {
if ($value2->name == $value1["name"]) {
$sw = 1;
break;
}
}
if ($sw == 0) {
$item = new stdClass();
$item->name = $value1["name"];
array_push($second, $item);
}
}
$arrayNewFirst = setAvailableFields($first, $arrayField);
$arrayNewSecond = setCasesListFields($second, $arrayField);
$result = genericJsonResponse($pmtable, $arrayNewFirst, $arrayNewSecond, $rowsperpage, $dateformat);
echo G::json_encode($result);
}
function fieldLabelReset($translation)
{
global $action;
$arrayField = getDefaultFields($action, $translation);
$arrayConfig = getDefaultConfig($action, $translation);
//Get values from JSON request
$first = G::json_decode((isset($_POST["first"]))? $_POST["first"] : G::json_encode(array()));
$second = G::json_decode((isset($_POST["second"]))? $_POST["second"] : G::json_encode(array()));
$pmtable = (isset($_POST["pmtable"]))? $_POST["pmtable"] : "";
$rowsperpage = (isset($_POST["rowsperpage"]))? $_POST["rowsperpage"] : $arrayConfig["rowsperpage"];
$dateformat = (isset($_POST["dateformat"]) && !empty($_POST["dateformat"]))? $_POST["dateformat"] : $arrayConfig["dateformat"];
//Reset label's fields
foreach ($second as $index1 => $value1) {
foreach ($arrayField as $index2 => $value2) {
if ($value2["name"] == $value1->name) {
$value1->label = $value2["label"];
break;
}
}
}
$arrayNewFirst = setAvailableFields($first, $arrayField);
$arrayNewSecond = setCasesListFields($second, $arrayField);
$result = genericJsonResponse($pmtable, $arrayNewFirst, $arrayNewSecond, $rowsperpage, $dateformat);
echo G::json_encode($result);
}
function fieldSave()
{
global $conf;
global $action;
$arrayField = getDefaultFields($action, 0);
$arrayConfig = getDefaultConfig($action, 0);
//Get values from JSON request
$first = G::json_decode((isset($_POST["first"]))? $_POST["first"] : G::json_encode(array()));
$second = G::json_decode((isset($_POST["second"]))? $_POST["second"] : G::json_encode(array()));
$pmtable = (isset($_POST["pmtable"]))? $_POST["pmtable"] : "";
$rowsperpage = (isset($_POST["rowsperpage"]))? $_POST["rowsperpage"] : $arrayConfig["rowsperpage"];
$dateformat = (isset($_POST["dateformat"]) && !empty($_POST["dateformat"]))? $_POST["dateformat"] : $arrayConfig["dateformat"];
//Adding the key fields to second array
//Required fields for AppCacheView.php - addPMFieldsToCriteria()
$appUid = new stdClass();
$appUid->name = "APP_UID";
$delIndex = new stdClass();
$delIndex->name = "DEL_INDEX";
$usrUid = new stdClass();
$usrUid->name = "USR_UID";
$previousUsrUid = new stdClass();
$previousUsrUid->name = "PREVIOUS_USR_UID";
array_unshift($second, $previousUsrUid);
array_unshift($second, $usrUid);
array_unshift($second, $delIndex);
array_unshift($second, $appUid);
$arrayNewFirst = setAvailableFields($first, $arrayField);
$arrayNewSecond = setCasesListFields($second, $arrayField);
$result = genericJsonResponse($pmtable, $arrayNewFirst, $arrayNewSecond, $rowsperpage, $dateformat);
$conf->saveObject($result, "casesList", $action, "", "", "");
echo G::json_encode($result);
}
require_once ("classes" . PATH_SEP . "model" . PATH_SEP . "Fields.php");
G::LoadClass("BasePeer");
G::LoadClass("configuration");
$callback = (isset($_POST["callback"]))? $_POST["callback"] : "stcCallback1001";
$dir = (isset($_POST["dir"]))? $_POST["dir"] : "DESC";
$sort = (isset($_POST["sort"]))? $_POST["sort"] : "";
$query = (isset($_POST["query"]))? $_POST["query"] : "";
$tabUid = (isset($_POST["table"]))? $_POST["table"] : "";
$action = (isset($_POST["action"]))? $_POST["action"] : "todo";
$xaction = (isset($_POST["xaction"]))? $_POST["xaction"] : "FIELD_SAVE";
try {
//Load the current configuration for this action, this configuration will be used later
$conf = new Configurations();
$confCasesList = $conf->loadObject("casesList", $action, "", "", "");
switch ($xaction) {
case "FIELD_SET":
if (isset($confCasesList['second']['data'])) {
foreach ($confCasesList['second']['data'] as $key => $value) {
$confCasesList['second']['data'][$key]['align_label'] = $confCasesList['second']['data'][$key]['align'];
}
}
fieldSet();
break;
case "FIELD_RESET":
case "FIELD_RESET_ID":
fieldReset(($xaction == "FIELD_RESET")? 1 : 0);
break;
case "FIELD_COMPLETE":
case "FIELD_COMPLETE_ID":
fieldComplete(($xaction == "FIELD_COMPLETE")? 1 : 0);
break;
case "FIELD_LABEL_RESET":
case "FIELD_LABEL_RESET_ID":
fieldLabelReset(($xaction == "FIELD_LABEL_RESET")? 1 : 0);
break;
case "FIELD_SAVE":
fieldSave();
break;
case "getFieldsFromPMTable":
xgetFieldsFromPMTable($tabUid);
break;
}
} catch (Exception $e) {
echo G::json_encode($e->getMessage());
}
/**
* set the generic Json Response, using two array for the grid stores and a string for the pmtable name
* @param string $pmtable
* @param array $first
* @param array $second
* @return $response a json string
*/
function genericJsonResponse($pmtable, $first, $second, $rowsperpage, $dateFormat)
{
$firstGrid['totalCount'] = count($first);
$firstGrid['data'] = $first;
$secondGrid['totalCount'] = count($second);
$secondGrid['data'] = $second;
$result = array();
$result['first'] = $firstGrid;
$result['second'] = $secondGrid;
$result['PMTable'] = isset($pmtable) ? $pmtable : '';
$result['rowsperpage'] = isset($rowsperpage) ? $rowsperpage : 20;
$result['dateformat'] = isset($dateFormat) && $dateFormat != '' ? $dateFormat : 'M d, Y';
return $result;
}
function xgetFieldsFromPMTable($tabUid)
{
$rows = array();
$result = array();
// $rows[] = array ( 'name' => 'val 1', 'gridIndex' => '21', 'fieldType' => 'PM Table' );
// $rows[] = array ( 'name' => 'val 2', 'gridIndex' => '22', 'fieldType' => 'PM Table' );
// $rows[] = array ( 'name' => 'val 3', 'gridIndex' => '23', 'fieldType' => 'PM Table' );
//$result['success'] = true;
//$result['totalCount'] = count($rows);
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns ( );
$oCriteria->setDistinct();
$oCriteria->addSelectColumn ( FieldsPeer::FLD_NAME );
$oCriteria->addSelectColumn ( FieldsPeer::FLD_UID );
$oCriteria->addSelectColumn ( FieldsPeer::FLD_INDEX );
$oCriteria->add (FieldsPeer::ADD_TAB_UID, $tabUid , CRITERIA::EQUAL );
$oCriteria->add (FieldsPeer::FLD_NAME, 'APP_UID' , CRITERIA::NOT_EQUAL );
$oCriteria->addDescendingOrderByColumn('FLD_INDEX');
$oDataset = FieldsPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$index = count($rows);
while ($aRow = $oDataset->getRow()) {
$aRow['index'] = ++$index;
$aTempRow['name'] = $aRow['FLD_NAME'];
$aTempRow['gridIndex'] = $aRow['index'];
$aTempRow['fieldType'] = 'PM Table';
$rows[] = $aTempRow;
$oDataset->next();
}
$result['data'] = $rows;
print G::json_encode( $result ) ;
}
/**
*
* @param Array $fields
* @return Array
*
*/
function calculateGridIndex($fields)
{
for ($i=0; $i<count( $fields ); $i++) {
$fields[$i]['gridIndex']=$i+1;
}
return ($fields);
}

View File

@@ -0,0 +1,65 @@
<?php
$callback = isset($_POST['callback']) ? $_POST['callback'] : 'stcCallback1001';
$dir = isset($_POST['dir']) ? $_POST['dir'] : 'DESC';
$sort = isset($_POST['sort']) ? $_POST['sort'] : '';
$query = isset($_POST['query']) ? $_POST['query'] : '';
$option = '';
if ( isset($_GET['t'] ) ) {
$option = $_GET['t'];
}
try {
G::LoadClass("BasePeer" );
require_once ( "classes/model/AdditionalTables.php" );
require_once ( "classes/model/Fields.php" );
$sUIDUserLogged = $_SESSION['USER_LOGGED'];
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns ( );
$oCriteria->setDistinct();
$oCriteria->addSelectColumn ( AdditionalTablesPeer::ADD_TAB_UID );
$oCriteria->addSelectColumn ( AdditionalTablesPeer::ADD_TAB_NAME );
$oCriteria->addSelectColumn ( FieldsPeer::FLD_NAME );
if ( $query != '' ) {
$oCriteria->add (AdditionalTablesPeer::ADD_TAB_NAME, $query . '%', Criteria::LIKE);
}
$oCriteria->addJoin(AdditionalTablesPeer::ADD_TAB_UID, FieldsPeer::ADD_TAB_UID);
$oCriteria->add (AdditionalTablesPeer::DBS_UID, 'workflow', CRITERIA::EQUAL );
$oCriteria->add (FieldsPeer::FLD_NAME, 'APP_UID', CRITERIA::EQUAL );
if (isset($limit)) {
$oCriteria->setLimit($limit);
}
if (isset($start)) {
$oCriteria->setOffset($start);
}
if ($sort != '') {
if ($dir == 'DESC') {
$oCriteria->addDescendingOrderByColumn( $sort );
} else {
$oCriteria->addAscendingOrderByColumn( $sort );
}
}
$oDataset = AdditionalTablesPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$result = array();
$rows = array();
$index = isset($start) ? $start : 0;
while ($aRow = $oDataset->getRow()) {
$aRow['index'] = ++$index;
$rows[] = $aRow;
$oDataset->next();
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print G::json_encode( $result );
} catch (Exception $e) {
print G::json_encode ($e->getMessage());
}

View File

@@ -0,0 +1,162 @@
<?php
/**
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$callback = isset($_POST['callback']) ? $_POST['callback'] : 'stcCallback1001';
$dir = isset($_POST['dir']) ? $_POST['dir'] : 'DESC';
$sort = isset($_POST['sort']) ? $_POST['sort'] : '';
$query = isset($_POST['query']) ? $_POST['query'] : '';
$tabUid = isset($_POST['table']) ? $_POST['table'] : '';
$action = isset($_POST['action']) ? $_POST['action'] : 'todo';
try {
G::LoadClass("BasePeer" );
require_once ( "classes/model/Fields.php" );
//$sUIDUserLogged = $_SESSION['USER_LOGGED'];
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns();
$oCriteria->setDistinct();
$oCriteria->addSelectColumn (FieldsPeer::FLD_NAME);
$oCriteria->addSelectColumn (FieldsPeer::FLD_UID);
$oCriteria->addSelectColumn (FieldsPeer::FLD_INDEX);
if ($query != '') {
$oCriteria->add (FieldsPeer::FLD_NAME, $query . '%', Criteria::LIKE);
}
//$oCriteria->addJoin(AdditionalTablesPeer::ADD_TAB_UID, FieldsPeer::ADD_TAB_UID);
$oCriteria->add (FieldsPeer::ADD_TAB_UID, $tabUid , CRITERIA::EQUAL );
$oCriteria->add (FieldsPeer::FLD_NAME, 'APP_UID' , CRITERIA::NOT_EQUAL );
//$oCriteria->add (AppCacheViewPeer::APP_STATUS, "TO_DO" , CRITERIA::EQUAL );
//$oCriteria->add (AppCacheViewPeer::USR_UID, $sUIDUserLogged);
//$totalCount = AppCacheViewPeer::doCount( $Criteria );
//if ( isset($limit) ) $oCriteria->setLimit ( $limit );
//if ( isset($start) ) $oCriteria->setOffset ( $start );
if ($sort != '') {
if ($dir == 'DESC') {
$oCriteria->addDescendingOrderByColumn( $sort );
} else {
$oCriteria->addAscendingOrderByColumn( $sort );
} //else {
// $oCriteria->addDescendingOrderByColumn('FLD_INDEX');
//}
$oDataset = FieldsPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$result = array();
$rows = array();
switch ($action) {
case 'todo':
// #, Case, task, process, sent by, due date, Last Modify, Priority
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '6', 'column2' => '6' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '5', 'column2' => '5' );
$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '7', 'column2' => '7' );
$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '9', 'column2' => '9' );
$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'draft':
//#, Case, task, process, due date, Last Modify, Priority },
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '6', 'column2' => '6' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '5', 'column2' => '5' );
$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '9', 'column2' => '9' );
$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'sent':
// #, Case, task, process, current user, sent by, Last Modify, Status
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
$rows[] = array( 'name' => 'APP_STATUS', 'gridIndex' => '2', 'column2' => '2' );
$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '5', 'column2' => '5' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '6', 'column2' => '6' );
$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '7', 'column2' => '7' );
$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '9', 'column2' => '9' );
$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'unassigned':
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
//$rows[] = array( 'name' => 'APP_STATUS', 'gridIndex' => '2', 'column2' => '2' );
//$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '2', 'column2' => '2' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '5', 'column2' => '5' );
//$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '6', 'column2' => '6' );
//$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'paused':
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
//$rows[] = array( 'name' => 'APP_STATUS', 'gridIndex' => '2', 'column2' => '2' );
//$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '2', 'column2' => '2' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '5', 'column2' => '5' );
//$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
//$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '9', 'column2' => '9' );
//$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'completed':
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
//$rows[] = array( 'name' => 'APP_STATUS', 'gridIndex' => '2', 'column2' => '2' );
//$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '2', 'column2' => '2' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '4', 'column2' => '4' );
$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '5', 'column2' => '5' );
//$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '8', 'column2' => '8' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '6', 'column2' => '6' );
//$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '10', 'column2' =>'10' );
break;
case 'cancelled':
$rows[] = array( 'name' => 'APP_UID', 'gridIndex' => '0', 'column2' => '0' );
$rows[] = array( 'name' => 'APP_NUMBER', 'gridIndex' => '1', 'column2' => '1' );
//$rows[] = array( 'name' => 'APP_STATUS', 'gridIndex' => '2', 'column2' => '2' );
//$rows[] = array( 'name' => 'DEL_INDEX', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TITLE', 'gridIndex' => '2', 'column2' => '2' );
$rows[] = array( 'name' => 'APP_PRO_TITLE', 'gridIndex' => '3', 'column2' => '3' );
$rows[] = array( 'name' => 'APP_TAS_TITLE', 'gridIndex' => '4', 'column2' => '4' );
//$rows[] = array( 'name' => 'APP_DEL_PREVIOUS_USER', 'gridIndex' => '7', 'column2' => '7' );
$rows[] = array( 'name' => 'DEL_TASK_DUE_DATE', 'gridIndex' => '5', 'column2' => '5' );
$rows[] = array( 'name' => 'APP_UPDATE_DATE', 'gridIndex' => '6', 'column2' => '6' );
$rows[] = array( 'name' => 'DEL_PRIORITY', 'gridIndex' => '7', 'column2' =>'7' );
break;
}
}
$index = count($rows);
while ($aRow = $oDataset->getRow()) {
$aRow['index'] = ++$index;
$aTempRow['name'] = $aRow['FLD_NAME'];
$aTempRow['gridIndex'] = $aRow['index'];
$aTempRow['column2'] = $aTempRow['gridIndex'];
$rows[] = $aTempRow;
$oDataset->next();
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
//$jsonResult['records'] = $result;
print G::json_encode( $result ) ;
} catch (Exception $e) {
print G::json_encode ($e->getMessage());
}

View File

@@ -20,11 +20,11 @@ if (class_exists("pmLicenseManager")) {
$licStatusMsg = "&nbsp;<font color=\"red\">(" . $licenseStatusInfo["message"] . ")</font>";
}
$G_TMP_MENU->AddIdRawOption("PMENTERPRISE", "../enterprise/addonsStore", "Enterprise Plugins Manager" . $licStatusMsg, "", "", "plugins");
$G_TMP_MENU->AddIdRawOption("PMENTERPRISE", "../enterprise/addonsStore", G::LoadTranslation('ID_MENU_NAME') . $licStatusMsg, "", "", "plugins");
if (isset($pmLicenseManagerO->result) && ($pmLicenseManagerO->result == "OK")) {
if (file_exists(PATH_HOME . "engine" . PATH_SEP . "methods" . PATH_SEP . "cases" . PATH_SEP . "casesListExtJs.php")) {
$G_TMP_MENU->AddIdRawOption("CASES_LIST_SETUP", "../enterprise/advancedTools/casesListSetup", "Cases Lists", "", "", "settings");
$G_TMP_MENU->AddIdRawOption("CASES_LIST_SETUP", "../cases/casesListSetup", G::LoadTranslation('ID_CASES_LIST'), "", "", "settings");
}
}
}

View File

@@ -591,9 +591,7 @@ Ext.onReady ( function() {
if( c.dataIndex == 'APP_DEL_PREVIOUS_USER') c.renderer = previous_full_name;
if( c.dataIndex == 'APP_CURRENT_USER') c.renderer = full_name;
}
if (enableEnterprise) {
c.header = __('enterprise', _(c.header));
}
c.header = _(c.header);
}
//adding the hidden field DEL_INIT_DATE

View File

@@ -0,0 +1,2 @@
<div id="panel"></div>
<div id="alt-panel"></div>

View File

@@ -0,0 +1,674 @@
Ext.onReady(function () {
var currentIndexRowSelected;
casesListProcessAjax = function (option)
{
var p;
var i = 0;
switch (option) {
case "FIELD_SET":
p = {
"xaction": option,
"action": currentAction
};
break;
case "FIELD_RESET":
case "FIELD_RESET_ID":
p = {
"xaction": option,
"action": currentAction
};
break;
case "FIELD_COMPLETE":
case "FIELD_COMPLETE_ID":
case "FIELD_LABEL_RESET":
case "FIELD_LABEL_RESET_ID":
case "FIELD_SAVE":
var rs = firstGrid.store.data.items;
var fv = [];
for (i = 0; i <= rs.length - 1; i++) {
fv[i] = rs[i].data["name"];
}
var rs = secondGrid.store.data.items;
var sv = [];
for (i = 0; i <= rs.length - 1; i++) {
//sv[i]= rs[i].data["name"];
sv[i] = rs[i].data;
}
p = {
"xaction": option,
"action": currentAction,
"first": Ext.util.JSON.encode(fv),
"second": Ext.util.JSON.encode(sv),
"pmtable": pmTablesDropdown.getValue()
};
break;
}
Ext.Ajax.request({
url: "proxyPMTablesFieldList",
method: "POST",
params: p,
success: function (response, opts)
{
var dataResponse = eval("(" + response.responseText + ")"); //json
switch (option) {
case "FIELD_SET":
configDefaultResponseText = response.responseText;
fieldSet(dataResponse);
break;
case "FIELD_RESET":
case "FIELD_RESET_ID":
fieldSet(dataResponse);
break;
case "FIELD_COMPLETE":
case "FIELD_COMPLETE_ID":
fieldSet(dataResponse);
break;
case "FIELD_LABEL_RESET":
case "FIELD_LABEL_RESET_ID":
fieldSet(dataResponse);
break;
case "FIELD_SAVE":
configDefaultResponseText = response.responseText;
Ext.Msg.alert(_("ID_INFO"), _("ID_SAVED"));
location.reload(true);
break;
}
},
failure: function (response, opts)
{
//
}
});
};
fieldSet = function (dataResponse)
{
remotePmFieldsStore.loadData(dataResponse.first);
secondGridStore.loadData(dataResponse.second);
//Remove APP_UID and DEL_INDEX from second grid, this is only to avoid display in this grid
var fieldName = "";
var i = 0;
while (i <= secondGrid.store.data.items.length - 1) {
fieldName = secondGrid.store.data.items[i].data["name"];
if (fieldName == "APP_UID" ||
fieldName == "DEL_INDEX" ||
fieldName == "USR_UID" ||
fieldName == "PREVIOUS_USR_UID"
) {
secondGrid.store.removeAt(i);
} else {
i = i + 1;
}
}
//Set also the selected table value in the comboBox element.
if (PmTableStore.getTotalCount() > 0) {
pmTablesDropdown.setValue(dataResponse.PMTable);
} else {
pmTablesDropdown.setValue("");
}
};
sendGridFieldsRequest = function (action)
{
currentAction = action;
casesListProcessAjax("FIELD_SET");
};
//Variables
var currentAction = "";
var configDefaultResponseText = "";
var tabIndex = 0;
// Generic fields array to use in both store defs.
var pmFields = [
{name: 'name', mapping : 'name'},
{name: 'gridIndex', mapping : 'gridIndex'},
{name: 'fieldType', mapping : 'fieldType'},
{name: 'label', mapping : 'label'},
//{name: 'width', mapping : 'width'},
{name: 'align', mapping : 'align'}
];
//Dropdown to select the PMTable
var PmTableStore = new Ext.data.JsonStore({
root : 'data',
url : 'proxyPMTablesList',
totalProperty : 'totalCount',
idProperty : 'gridIndex',
remoteSort : false, //true,
autoLoad : false,
fields : [
'ADD_TAB_UID', 'ADD_TAB_NAME'
],
listeners : {load: function() {
tabs.setActiveTab(tabIndex);
}}
});
// create the Data Store to list PMTables in the dropdown
var pmTablesDropdown = new Ext.form.ComboBox ({
width : '180',
xtype : 'combo',
emptyText: _("ID_EMPTY_PMTABLE"),
displayField : 'ADD_TAB_NAME',
valueField : 'ADD_TAB_UID',
triggerAction: 'all',
store : PmTableStore,
listeners: {
'select': function() {
var tableUid = this.value;
Ext.Ajax.request({
url: 'proxyPMTablesFieldList',
success: function(response) {
var dataResponse = Ext.util.JSON.decode(response.responseText);
var rec = Ext.data.Record.create(pmFields);
//alert(firstGrid.store);
var index;
var record;
var count = firstGrid.store.getTotalCount();
// removing all the PM Table fields from the first grid
do {
index = firstGrid.store.find('fieldType','PM Table');
record = firstGrid.store.getAt(index);
if (index>=0) {
firstGrid.store.remove(record);
}
} while (index>=0);
// removing all the PM Table fields from the second grid
do {
index = secondGrid.store.find('fieldType','PM Table');
record = secondGrid.store.getAt(index);
if (index>=0) {
secondGrid.store.remove(record);
}
} while (index>=0);
for (var i = 0; i <= dataResponse.data.length-1; i++) {
var d = new rec( dataResponse.data[i] );
firstGrid.store.add(d);
}
firstGrid.store.commitChanges();
},
failure: function(){},
params: {xaction: 'getFieldsFromPMTable', table: tableUid }
});
}
}
});
// COMPONENT DEPRECATED remove it in the next revision of the enterprise plugin
// create the Dropdown for rows per page
var pmRowsPerPage = new Ext.form.ComboBox ({
width : 60,
boxMaxWidth : 70,
editable : false,
triggerAction : 'all',
mode : 'local',
store : new Ext.data.ArrayStore({
fields: ['id'],
data : [[5], [6], [7], [8], [9], [10], [12], [15], [18], [20], [25], [30], [50], [100] ]
}),
valueField : 'id',
displayField : 'id',
triggerAction : 'all'
});
// COMPONENT DEPRECATED remove it in the next revision of the enterprise plugin
// create the Dropdown for date formats
var pmDateFormat = new Ext.form.ComboBox ({
width : 80,
boxMaxWidth : 90,
editable : false,
triggerAction : 'all',
mode : 'local',
store : new Ext.data.ArrayStore({
fields: ['id'],
data : [['M d, Y'],['M d Y'],['M d Y H:i:s'],['d M Y'],['d M Y H:i:s'],['Y-m-d'],['Y-m-d H:i:s'],['Y/m/d '],['Y/m/d H:i:s'],['D d M Y'] ]
}),
valueField : 'id',
displayField : 'id',
triggerAction : 'all'
});
PmTableStore.setDefaultSort('ADD_TAB_NAME', 'asc');
PmTableStore.load();
var remoteFieldsProxy = new Ext.data.HttpProxy({
url : 'proxyPMTablesFieldList',
autoSave: true,
totalProperty: 'totalCount',
successProperty: 'success',
idProperty: 'gridIndex',
root: 'data',
messageProperty: 'message'
});
var readerPmFields = new Ext.data.JsonReader({
totalProperty : 'totalCount',
idProperty : 'index',
root : 'data'
}, pmFields
);
//currently we are not using this , but it is here just for complete definition
var writerPmFields = new Ext.data.JsonWriter({
writeAllFields: false
});
var remotePmFieldsStore = new Ext.data.Store({
remoteSort : true,
proxy : remoteFieldsProxy,
reader : readerPmFields,
writer : writerPmFields, // <-- plug a DataWriter into the store just as you would a Reader
autoSave : false // <-- false would delay executing create, update, destroy requests until specifically told to do so with some [save] buton.
});
// fields array used in second grid
var fieldsSecond = [
{name: 'name', mapping : 'name'},
{name: 'gridIndex', mapping : 'gridIndex'},
{name: 'fieldType', mapping : 'fieldType'},
{name: 'label', mapping : 'label'},
//{name: 'width', mapping : 'width'},
{name: 'align_label', mapping : 'align_label'},
{name: 'align', mapping : 'align'}
];
var labelTextField = new Ext.form.TextField ({
allowBlank: true
});
var alignComboBox = new Ext.form.ComboBox ({
editable : false,
triggerAction: 'all',
lazyRender:true,
mode: 'local',
store: new Ext.data.ArrayStore({
//id: 0,
fields: [
'id',
'label'
],
data: [['left', _('ID_LEFT')], ['center', _('ID_CENTER')], ['right', _('ID_RIGHT')]]
}),
valueField: 'id',
displayField: 'label',
});
var alignComboBoxLabel = new Ext.form.ComboBox ({
editable : false,
triggerAction: 'all',
lazyRender:true,
mode: 'local',
store: new Ext.data.ArrayStore({
//id: 0,
fields: [
'id',
'label'
],
data: [['left', _('ID_LEFT')], ['center', _('ID_CENTER')], ['right', _('ID_RIGHT')]]
}),
valueField: 'id',
displayField: 'label',
listeners:{
select: function(obj){
var row = Ext.getCmp('secondGrid').getSelectionModel().getSelected();
var selIndex = Ext.getCmp('secondGrid').getStore().indexOfId(row.id);
row.data['align'] = obj.getValue();
obj.value = obj.lastSelectionText;
}
}
});
var widthTextField = new Ext.form.NumberField({
allowBlank: false,
allowNegative: false,
maxValue: 800,
minValue: 0
});
//Column Model shortcut array
var cols = [
{header: _("ID_HEADER_NUMBER"), sortable: false, dataIndex: "gridIndex", hidden: true, hideable: false},
{header: _("ID_HEADER_FIELD_NAME"), width: '75%', sortable: false, dataIndex: "name"},
{header: _("ID_HEADER_FIELD_TYPE"), width: '25%', sortable: false, dataIndex: "fieldType"}
];
//Column Model shortcut array
var colsSecond = new Ext.grid.ColumnModel({
// specify any defaults for each column
defaults: {
sortable: false // columns are not sortable by default
},
columns: [
{header: _("ID_HEADER_NUMBER"), width: 25, dataIndex: "gridIndex", hidden: true, hideable: false},
{header: _("ID_HEADER_FIELD_NAME"), width: 160, dataIndex: "name"},
{header: _("ID_HEADER_FIELD_TYPE"), width: 70, dataIndex: "fieldType"},
{
header: _("ID_HEADER_LABEL"),
width: 160,
dataIndex: "label",
editor: labelTextField,
renderer: function (value, metaData, record, rowIndex, colIndex, store)
{
var arrayMatch = [];
var newValue = value;
if ((arrayMatch = /^\*\*(.+)\*\*$/.exec(value))) {
newValue = _(arrayMatch[1]);
}
return newValue;
}
},
{header: _("ID_HEADER_ALIGN"), width: 60, dataIndex: "align_label", editor: alignComboBoxLabel}
]
});
// declare the source Grid
var firstGrid = new Ext.grid.GridPanel({
enableDragDrop: true,
width: '35%',
ddGroup: "secondGridDDGroup",
ddText: "{0} " + _("ID_SELECTED_FIELD") + "{1}",
store: remotePmFieldsStore,
columns: cols,
stripeRows: true,
title: _("ID_AVAILABLE_FIELDS")
});
var secondGridStore = new Ext.data.JsonStore({
root : 'data',
totalProperty : 'totalCount',
fields : fieldsSecond,
remoteSort : false,
successProperty : 'success'
});
// create the destination Grid
var secondGrid = new Ext.grid.EditorGridPanel({
id: 'secondGrid',
enableDragDrop: true,
width: '65%',
ddGroup: "firstGridDDGroup",
selModel: new Ext.grid.RowSelectionModel({singleSelect: true}),
store: secondGridStore,
ddText: "{0} " + _("ID_SELECTED_FIELD") + "{1}",
clicksToEdit: 1,
cm: colsSecond,
sm: new Ext.grid.RowSelectionModel({
listeners:{
selectionchange: function(sm,a,b,c){
if (sm.lastActive !== false) {
currentIndexRowSelected = sm.lastActive;
}
}
}
}),
stripeRows: true,
title: _("ID_CASES_LIST_FIELDS")
});
var inboxPanel = new Ext.Panel({
title: _("ID_TITLE_INBOX"),
listeners: {'activate': function() {
tabIndex = 0;
sendGridFieldsRequest("todo");
}}
});
var draftPanel = new Ext.Panel({
title: _("ID_TITLE_DRAFT"),
listeners: {'activate': function() {
tabIndex = 1;
sendGridFieldsRequest("draft");
}}
});
var participatedPanel = new Ext.Panel({
title: _("ID_TITLE_PARTICIPATED"),
listeners: {'activate': function() {
tabIndex = 2;
sendGridFieldsRequest("sent");
}}
});
var unassignedPanel = new Ext.Panel({
title: _("ID_TITLE_UNASSIGNED"),
listeners: {'activate': function() {
tabIndex = 3;
sendGridFieldsRequest("unassigned");
}}
});
var pausedPanel = new Ext.Panel({
title: _("ID_TITLE_PAUSED"),
listeners: {'activate': function() {
tabIndex = 4;
sendGridFieldsRequest("paused");
}}
});
var completedPanel = new Ext.Panel({
title: _("ID_TITLE_COMPLETED"),
listeners: {'activate': function() {
tabIndex = 5;
sendGridFieldsRequest("completed");
}}
});
var cancelledPanel = new Ext.Panel({
title: _("ID_TITLE_CANCELLED"),
listeners: {'activate': function() {
tabIndex = 6;
sendGridFieldsRequest("cancelled");
}}
});
var mainPanel = new Ext.Panel({
title : '',
renderTo : 'alt-panel',
width : '100%',
height : screen.height-245,
layout : 'hbox',
layoutConfig : {align : 'stretch'},
tbar : new Ext.Toolbar({
items: [
_("ID_PM_TABLE"),
pmTablesDropdown,
"->",
new Ext.Action({
text: _("ID_OPTIONS"),
iconCls: "button_menu_ext ss_sprite ss_table_gear",
menu: new Ext.menu.Menu({
width: 250,
defaults: {
iconCls: "silk-add",
icon: "/images/ext/default/menu/group-checked.gif"
},
items: [
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_RESET") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_RESET");
}
},
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_RESET_ID") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_RESET_ID");
}
},
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_COMPLETE") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_COMPLETE");
}
},
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_COMPLETE_ID") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_COMPLETE_ID");
}
},
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_LABEL_RESET") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_LABEL_RESET");
}
},
{
text: "<div style=\"white-space: pre-wrap;\">" + _("ID_CASESLIST_FIELD_LABEL_RESET_ID") + "</div>",
handler: function ()
{
casesListProcessAjax("FIELD_LABEL_RESET_ID");
}
}
]
})
})
]
}),
items: [
firstGrid,
secondGrid
],
bbar: [
"->",
{
text: _("ID_RESET"),
handler: function ()
{
var dataResponse = eval("(" + configDefaultResponseText + ")"); //json
fieldSet(dataResponse);
}
},
" ",
{
text: _("ID_APPLY_CHANGES"),
handler: function ()
{
casesListProcessAjax("FIELD_SAVE");
}
}
]
});
var tabs = new Ext.TabPanel({
renderTo : 'panel',
//activeTab : 0,
width : '100%',
items : [
inboxPanel,
draftPanel,
participatedPanel,
unassignedPanel,
pausedPanel
]
});
// used to add records to the destination stores
// Setup Drop Targets
// This will make sure we only drop to the view scroller element
var firstGridDropTargetEl = firstGrid.getView().scroller.dom;
var firstGridDropTarget = new Ext.dd.DropTarget(firstGridDropTargetEl, {
ddGroup : 'firstGridDDGroup',
notifyDrop : function(ddSource, e, data){
var records = ddSource.dragData.selections;
Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
firstGrid.store.add(records);
firstGrid.store.commitChanges();
return true
}
});
// This will make sure we only drop to the view scroller element
var secondGridDropTargetEl = secondGrid.getView().scroller.dom;
var secondGridDropTarget = new Ext.dd.DropTarget(secondGridDropTargetEl, {
notifyDrop : function(ddSource, e, data){
if ( ddSource.ddGroup == 'firstGridDDGroup') {
var selectedRecord = secondGrid.getSelectionModel().getSelected();
// to get value of a field in the record
var valSource = selectedRecord.get('gridIndex');
var rowTargetId = secondGrid.getView().findRowIndex(e.getTarget());
var recTarget = secondGrid.getStore().getAt(rowTargetId);
var valTarget = recTarget.get('gridIndex');
var newIndex = 0;
for (i=0; i< secondGrid.store.getCount(); i++) {
var record = secondGrid.getStore().getAt(i);
if (record.get('gridIndex') == valSource) {
record.set('gridIndex',valTarget);
} else {
incIndexB = 1;
isBrecord = 0;
if ( record.get('gridIndex') == valTarget ) {
isBrecord = true;
}
if ( isBrecord && newIndex == record.get('gridIndex') ) {
newIndex++;incIndexB = false;
}
record.set('gridIndex', newIndex);
newIndex++;
if ( isBrecord && incIndexB ) {
newIndex++;
}
}
}
secondGrid.store.sort('gridIndex', 'ASC');
return true;
};
var records = ddSource.dragData.selections;
Ext.each(records, ddSource.grid.store.remove, ddSource.grid.store);
secondGrid.store.add(records);
//reorder fields, putting a secuencial index for all records
for (i=0; i< secondGrid.store.getCount(); i++) {
var record = secondGrid.getStore().getAt(i);
record.set('gridIndex', i );
}
secondGrid.store.commitChanges();
return true
}
});
secondGridDropTarget.addToGroup('secondGridDDGroup');
secondGridDropTarget.addToGroup('firstGridDDGroup');
});