diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 7d6003705..4e699202c 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -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']; diff --git a/workflow/engine/methods/cases/casesListSetup.php b/workflow/engine/methods/cases/casesListSetup.php new file mode 100644 index 000000000..11ccba0f2 --- /dev/null +++ b/workflow/engine/methods/cases/casesListSetup.php @@ -0,0 +1,19 @@ +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"); + diff --git a/workflow/engine/methods/cases/proxyPMTablesFieldList.php b/workflow/engine/methods/cases/proxyPMTablesFieldList.php new file mode 100644 index 000000000..d8d996725 --- /dev/null +++ b/workflow/engine/methods/cases/proxyPMTablesFieldList.php @@ -0,0 +1,758 @@ + "#", "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; $iclearSelectColumns ( ); + $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()); +} + diff --git a/workflow/engine/methods/cases/proxyPMTablesSaveFields.php b/workflow/engine/methods/cases/proxyPMTablesSaveFields.php new file mode 100644 index 000000000..7303dc129 --- /dev/null +++ b/workflow/engine/methods/cases/proxyPMTablesSaveFields.php @@ -0,0 +1,162 @@ +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()); +} + diff --git a/workflow/engine/methods/enterprise/menuEnterprise.php b/workflow/engine/methods/enterprise/menuEnterprise.php index 22f3badf7..840bfcbda 100644 --- a/workflow/engine/methods/enterprise/menuEnterprise.php +++ b/workflow/engine/methods/enterprise/menuEnterprise.php @@ -20,11 +20,11 @@ if (class_exists("pmLicenseManager")) { $licStatusMsg = " (" . $licenseStatusInfo["message"] . ")"; } - $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"); } } } diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 9ea6dcf66..a6b3c4e0d 100644 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -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 diff --git a/workflow/engine/templates/cases/casesListSetup.html b/workflow/engine/templates/cases/casesListSetup.html new file mode 100644 index 000000000..6de101d0c --- /dev/null +++ b/workflow/engine/templates/cases/casesListSetup.html @@ -0,0 +1,2 @@ +
+
diff --git a/workflow/engine/templates/cases/casesListSetup.js b/workflow/engine/templates/cases/casesListSetup.js new file mode 100644 index 000000000..e03e791af --- /dev/null +++ b/workflow/engine/templates/cases/casesListSetup.js @@ -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: "
" + _("ID_CASESLIST_FIELD_RESET") + "
", + handler: function () + { + casesListProcessAjax("FIELD_RESET"); + } + }, + { + text: "
" + _("ID_CASESLIST_FIELD_RESET_ID") + "
", + handler: function () + { + casesListProcessAjax("FIELD_RESET_ID"); + } + }, + { + text: "
" + _("ID_CASESLIST_FIELD_COMPLETE") + "
", + handler: function () + { + casesListProcessAjax("FIELD_COMPLETE"); + } + }, + { + text: "
" + _("ID_CASESLIST_FIELD_COMPLETE_ID") + "
", + handler: function () + { + casesListProcessAjax("FIELD_COMPLETE_ID"); + } + }, + { + text: "
" + _("ID_CASESLIST_FIELD_LABEL_RESET") + "
", + handler: function () + { + casesListProcessAjax("FIELD_LABEL_RESET"); + } + }, + { + text: "
" + _("ID_CASESLIST_FIELD_LABEL_RESET_ID") + "
", + 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'); + +});