getModule(); $qualifiedModuleName = $request->getModule(false); $viewer = $this->getViewer($request); /** * @var $settingsModel Settings_Colorizer_Module_Model */ $settingsModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); $moduleModel = Vtiger_Module_Model::getInstance("Workflow2"); $sql = 'SELECT vtiger_wf_repository.title as repo_title, vtiger_wf_repository.messages as repo_messages FROM vtiger_wf_repository WHERE deleted = 0 ORDER BY ID'; $result = $adb->query($sql, true); $messages = array(); while($row = $adb->fetchByAssoc($result)) { $tmp = unserialize(html_entity_decode($row['repo_messages'])); foreach($tmp as $msg) { $messages[] = array($msg[0], $row['repo_title'], $msg[1]); } } $viewer->assign('messages', $messages); $sql = 'SELECT vtiger_wf_types.*, vtiger_wf_repository_types.id as type_id, vtiger_wf_repository_types.repos_id AS repos_id, vtiger_wf_repository_types.name, vtiger_wf_repository_types.mode, vtiger_wf_repository_types.status, vtiger_wf_repository_types.module_required, vtiger_wf_repository_types.min_version, vtiger_wf_repository_types.version as latest_version, vtiger_wf_repository_types.last_update as last_update, vtiger_wf_repository.url as repo_url, vtiger_wf_repository.title as repo_title, vtiger_wf_repository.title as repo_messages, vtiger_wf_repository_core.version as installed_core_version FROM vtiger_wf_repository_types LEFT JOIN vtiger_wf_repository ON (vtiger_wf_repository.id = vtiger_wf_repository_types.repos_id) LEFT JOIN vtiger_wf_types ON ( vtiger_wf_repository_types.repos_id = vtiger_wf_types.repo_id AND vtiger_wf_repository_types.name = vtiger_wf_types.type ) LEFT JOIN vtiger_wf_repository_core ON ( vtiger_wf_repository_types.name = vtiger_wf_repository_core.type ) WHERE vtiger_wf_repository.title IS NOT NULL ORDER BY vtiger_wf_types.ID'; $result = $adb->query($sql, true); $blocks = array(); while($row = $adb->fetchByAssoc($result)) { if($row['repo_id'] == '0' && strpos($row['repo_url'], 'repository.stefanwarnat.de') === false) { continue; } if($row['repo_id'] == '0') { $row['repo_title'] = 'Internal'; } $row['last_update'] = DateTimeField::convertToUserFormat($row['last_update']); $text = getTranslatedString($row['text'], $row['module']); $prevent = false; if($row['min_version'] > $moduleModel->version) { $prevent = 'Require Workflow Designer Version '.$row['min_version']; } if(!empty($row['module_required'])) { $parts = explode(',', $row['module_required']); foreach($parts as $part) { if(!vtlib_isModuleActive($part)) { $prevent = 'Additional module '.$part.' required (Link with information about this module)'; break; } } } $blocks[$row['repo_title']]["repo_id"] = $row['repos_id']; $blocks[$row['repo_title']][$row['mode']][] = array( 'type_id' => $row['id'], 'id' => $row['type_id'], 'repo_id' => $row['repos_id'], 'text' => empty($text)?$row['name']:$text, 'version' => $row['mode']=='task'?$row['version']:$row['installed_core_version'], 'latest_version' => empty($row['latest_version'])?'-':$row['latest_version'], 'status' => $row['status'], 'last_update' => $row['last_update'], 'prevent' => $prevent, ); } $sql = 'SELECT vtiger_wf_types.* FROM vtiger_wf_types WHERE repo_id = 0 ORDER BY vtiger_wf_types.ID'; $result = $adb->query($sql, true); while($row = $adb->fetchByAssoc($result)) { if($row['repo_id'] == '0') { $row['repo_title'] = 'Internal'; } $text = getTranslatedString($row['text'], $row['module']); $prevent = false; $blocks['without Repository']['no_update'] = true; $blocks['without Repository']['task'][] = array( 'type_id' => $row['id'], 'id' => $row['id'], 'repo_id' => $row['repos_id'], 'text' => $text, 'version' => $row['version'], 'latest_version' => '', 'last_update' => '', 'prevent' => '' ); } $viewer->assign('blocks', $blocks); if(isset($_REQUEST['export']) && $_REQUEST['export'] == '1') { $viewer->assign('download', true); } else { $viewer->assign('download', false); } $viewer->view('VT7/TaskManagement.tpl', $qualifiedModuleName); } /** * Function to get the list of Script models to be included * @param Vtiger_Request $request * @return - List of Vtiger_JsScript_Model instances */ function getHeaderScripts(Vtiger_Request $request) { $headerScriptInstances = parent::getHeaderScripts($request); $moduleName = $request->getModule(); $jsFileNames = array( "modules.$moduleName.views.resources.js.Essentials", "modules.Settings.$moduleName.views.resources.Workflow2", "modules.Settings.$moduleName.views.resources.TaskManager", ); $jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames); $headerScriptInstances = array_merge($headerScriptInstances, $jsScriptInstances); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); foreach($headerScriptInstances as $obj) { $src = $obj->get('src'); if(!empty($src) && strpos($src, $moduleName) !== false) { $obj->set('src', $src.'?v='.$moduleModel->version); } } return $headerScriptInstances; } function getHeaderCss(Vtiger_Request $request) { $headerScriptInstances = parent::getHeaderCss($request); $moduleName = $request->getModule(); $cssFileNames = array( "~layouts/".Vtiger_Viewer::getLayoutName()."/modules/Settings/$moduleName/resources/css/Workflow2.css", ); $cssScriptInstances = $this->checkAndConvertCssStyles($cssFileNames); $headerStyleInstances = array_merge($headerScriptInstances, $cssScriptInstances); return $headerStyleInstances; } }