public function executeListAll(\Library\HttpRequest $rq) { $sessionProject = \Applications\PMTool\Helpers\ProjectHelper::GetCurrentSessionProject($this->app()->user()); //Check if a project needs to be selected in order to display this page if (!$sessionProject) { $this->Redirect(\Library\Enums\ResourceKeys\UrlKeys::ProjectsSelectProject . "?onSuccess=" . \Library\Enums\ResourceKeys\UrlKeys::TaskListAll); } $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentProject, $sessionProject[\Library\Enums\SessionKeys::ProjectObject]); if (!\Applications\PMTool\Helpers\TaskHelper::UserHasTasks($this->user(), 0)) { $this->executeGetList($rq, NULL, FALSE); } $data = array(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::module => strtolower($this->module()), \Applications\PMTool\Resources\Enums\ViewVariablesKeys::objects => \Applications\PMTool\Helpers\TaskHelper::GetFilteredTaskObjectsList($this->app()->user()), \Applications\PMTool\Resources\Enums\ViewVariablesKeys::properties => \Applications\PMTool\Helpers\CommonHelper::SetPropertyNamesForDualList(strtolower($this->module()))); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::data, $data); $sessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($this->user()); //Set passed task as current task if ($rq->getData("task_id") !== '' && !is_null($rq->getData("task_id"))) { $sessionTask = \Applications\PMTool\Helpers\TaskHelper::SetCurrentSessionTask($this->user(), NULL, $rq->getData("task_id")); //check if we passed a redirect URL too if ($rq->getData("onSuccess") !== '' && !is_null($rq->getData("onSuccess"))) { //rediect to it $this->Redirect($rq->getData("onSuccess")); } } $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentTask, $sessionTask[\Library\Enums\SessionKeys::TaskObj]); //Fetch tooltip data from xml and pass to view as an array $tooltip_array = \Applications\PMTool\Helpers\PopUpHelper::getTooltipMsgForAttribute('{"targetcontroller":"task", "targetaction": "list", "targetattr": ["active-task-header","inactive-task-header"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::tooltip_message, $tooltip_array); //Get confirm msg $confirm_msg = \Applications\PMTool\Helpers\PopUpHelper::getConfirmBoxMsg('{"targetcontroller":"task", "targetaction": "list", "operation": ["activate","addUniqueCheck"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::confirm_message, $confirm_msg); //Fetch prompt box data from xml and pass to view as an array //Also let's just fetch the message for the showForm view and reuse it $prompt_msg = \Applications\PMTool\Helpers\PopUpHelper::getPromptBoxMsg('{"targetcontroller":"task", "targetaction": "view", "operation": ["addNullCheck","addNullCheckForCopy"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::prompt_message, $prompt_msg); $modules = $this->app()->router()->selectedRoute()->phpModules(); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::active_list, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::active_list]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::inactive_list, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::inactive_list]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::promote_buttons, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::promote_buttons]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::popup_msg, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::popup_msg]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::prompt_msg, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::popup_prompt]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::tooltip_message_module, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::tooltip_msg]); }
public static function GetTaskForms($caller, $sessionTask) { $result = array(); if ($sessionTask !== NULL) { $taskForm = new \Applications\PMTool\Models\Dao\Task_template_form(); $taskId = $sessionTask[\Library\Enums\SessionKeys::TaskObj]->task_id(); $taskForm->setTask_id($taskId); $manager = $caller->managers()->getManagerOf("TaskForm"); $result = $sessionTask[\Library\Enums\SessionKeys::TaskForms] = $manager->selectMany($taskForm, "task_id"); \Applications\PMTool\Helpers\TaskHelper::SetCurrentSessionTask($caller->user(), $sessionTask); } return $result; }
public function executeDelete(\Library\HttpRequest $rq) { // Init result $result = $this->InitResponseWS(); $pm = \Applications\PMTool\Helpers\PmHelper::GetCurrentSessionPm($this->user()); $sessionProject = \Applications\PMTool\Helpers\ProjectHelper::GetCurrentSessionProject($this->app()->user()); $sessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($this->user()); $db_result = FALSE; $form_id = intval($this->dataPost["form_id"]); if ($this->dataPost["form_type"] == "user_form") { //Check if the service to be deleted is the Project manager's $form_selected = \Applications\PMTool\Helpers\FormHelper::GetAUserForm($this->user(), $form_id); //Load interface to query the database if ($form_selected !== NULL) { $manager = $this->managers->getManagerOf("UserForm"); $manager->setRootDirectory($this->app()->config()->get(\Library\Enums\AppSettingKeys::RootDocumentUpload)); $manager->setWebDirectory($this->app()->config()->get(\Library\Enums\AppSettingKeys::BaseUrl) . $this->app()->config()->get(\Library\Enums\AppSettingKeys::RootUploadsFolderPath)); $db_result = $manager->deleteWithFile($form_selected, "form_id"); if ($db_result) { //since we don't have foreign keys set because this is a relationship between 3 tables we must manually delete all project_form records, we also need to manually remove task forms //remove project forms from session $relationProjectForms = \Applications\PMTool\Helpers\FormHelper::GetProjectForms($this, $sessionProject); $filteredProjectForms = \Applications\PMTool\Helpers\FormHelper::FilterFormsByGivenId($relationProjectForms, 'user_form_id', $form_id); $sessionProject[\Library\Enums\SessionKeys::ProjectForms] = $filteredProjectForms; if ($sessionTask !== FALSE) { $relationTaskForms = \Applications\PMTool\Helpers\FormHelper::GetTaskForms($this, $sessionTask); $filteredTaskForms = \Applications\PMTool\Helpers\FormHelper::FilterFormsByGivenId($relationTaskForms, 'user_form_id', $form_id); $sessionTask[\Library\Enums\SessionKeys::TaskForms] = $filteredTaskForms; \Applications\PMTool\Helpers\TaskHelper::SetCurrentSessionTask($this->user(), $sessionTask); } //delete from db $projectForm = new \Applications\PMTool\Models\Dao\Project_form(); $projectForm->setUser_form_id($form_id); $manager = $this->managers->getManagerOf("ProjectForm"); $manager->delete($projectForm, "user_form_id"); $taskForm = new \Applications\PMTool\Models\Dao\Task_template_form(); $taskForm->setUser_form_id($form_id); $manager = $this->managers->getManagerOf("TaskForm"); $manager->delete($taskForm, "user_form_id"); //remove user forms from session $match = \Applications\PMTool\Helpers\CommonHelper::FindIndexInObjectListById($form_selected->form_id(), "form_id", $sessionProject[\Library\Enums\SessionKeys::ProjectAvailableForms], \Library\Enums\SessionKeys::ProjectUserForms); unset($sessionProject[\Library\Enums\SessionKeys::ProjectAvailableForms][\Library\Enums\SessionKeys::ProjectUserForms][$match["key"]]); \Applications\PMTool\Helpers\ProjectHelper::SetCurrentSessionProject($this->user(), $sessionProject); } } } elseif ($this->dataPost["form_type"] == "master_form") { //delete from db //Project form $projectForm = new \Applications\PMTool\Models\Dao\Project_form(); $projectForm->setMaster_form_id($form_id); $manager = $this->managers->getManagerOf("ProjectForm"); $manager->delete($projectForm, "master_form_id"); //Task template form $taskForm = new \Applications\PMTool\Models\Dao\Task_template_form(); $taskForm->setMaster_form_id($form_id); $manager = $this->managers->getManagerOf("TaskForm"); $manager->delete($taskForm, "master_form_id"); //Now for the master form $masterFormDAO = new \Applications\PMTool\Models\Dao\Master_form(); $masterFormDAO->setForm_id($form_id); $dal = $this->managers()->getManagerOf("MasterForm"); $matchingForms = $dal->selectMany($masterFormDAO, "form_id"); $db_result = $dal->deleteWithFileV2($matchingForms[0], "form_id"); } $this->SendResponseWS($result, array("resx_file" => \Applications\PMTool\Resources\Enums\ResxFileNameKeys::Form, "resx_key" => $this->action(), "step" => $db_result !== FALSE ? "success" : "error")); }
public function executeFieldData(\Library\HttpRequest $rq) { \Applications\PMTool\Helpers\ActiveTaskHelper::AddTabsStatus($this->user()); \Applications\PMTool\Helpers\AnalyteHelper::StoreListsData($this); $sessionProject = \Applications\PMTool\Helpers\ProjectHelper::GetCurrentSessionProject($this->user()); \Applications\PMTool\Helpers\AnalyteHelper::StoreListsData($this); //Check if a project needs to be selected in order to display this page if (!$sessionProject) { $this->Redirect(\Library\Enums\ResourceKeys\UrlKeys::ProjectsSelectProject . "?onSuccess=" . \Library\Enums\ResourceKeys\UrlKeys::TaskAddPrompt); } $sessionTask = \Applications\PMTool\Helpers\TaskHelper::SetCurrentSessionTask($this->user(), NULL, $rq->getData("task_id")); //Get task specific field analytes $task_field_analytes = \Applications\PMTool\Helpers\AnalyteHelper::GetAndStoreTaskFieldAnalytes($this, $sessionTask); //Check which page to render $pg = is_null($rq->getData('pg')) ? 1 : intval($rq->getData('pg')) == 0 ? 1 : intval($rq->getData('pg')); //Calculate pages $pages = \Applications\PMTool\Helpers\TaskAnalyteMatrixHelper::returnTotalPagesOfAnalytes($task_field_analytes, $this->app); //Filter paged result set of analytes //$task_field_analytes = \Applications\PMTool\Helpers\TaskAnalyteMatrixHelper::returnPagedAnalyteObjects($task_field_analytes, $pg, $this->app); //Task specific locations $project_locations = \Applications\PMTool\Helpers\LocationHelper::GetProjectLocations($this, $sessionProject); $task_locations = \Applications\PMTool\Helpers\LocationHelper::GetAndStoreTaskLocations($this, $sessionTask); //Get LocationLabMatrix relation $id_map = \Applications\PMTool\Helpers\TaskAnalyteMatrixHelper::GetFieldDataMatrixForTaskWithResult($this, $sessionTask[\Library\Enums\SessionKeys::TaskObj]->task_id()); //\Applications\PMTool\Helpers\CommonHelper::pr($id_map); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentProject, $sessionProject[\Library\Enums\SessionKeys::ProjectObject]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentTask, $sessionTask[\Library\Enums\SessionKeys::TaskObj]); \Applications\PMTool\Helpers\ActiveTaskHelper::SetActiveTab($this->user(), \Applications\PMTool\Resources\Enums\ActiveTaskTabKeys::ActiveTaskFieldDataTab); //Fetch tooltip data from xml and pass to view as an array $tooltip_array = \Applications\PMTool\Helpers\PopUpHelper::getTooltipMsgForAttribute('{"targetcontroller":"activeTask", "targetaction": "showForm", "targetattr": ["h4-taskstatus-leftcol-gi", "h4-taskstatus-rightcol-gi", "h4-taskstatus-notes-gi", "h4-taskstatus-notesrecord-gi"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::tooltip_message, $tooltip_array); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::activeTaskTabStatus, \Applications\PMTool\Helpers\ActiveTaskHelper::GetTabsStatus($this->app()->user())); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::form_modules, $this->app()->router()->selectedRoute()->phpModules()); //-------- $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::task_locations, $task_locations); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::task_field_analytes, $task_field_analytes); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::task_analytes_pages, $pages); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::current_page, $pg); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::task_field_analytes_idmap, $id_map); //footer task id $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::task_id, $rq->getData("task_id")); }
public function executeListTasks(\Library\HttpRequest $rq) { $modules = $this->app()->router()->selectedRoute()->phpModules(); \Applications\PMTool\Helpers\DiscussionHelper::UnsetCurrentDiscussion($this->user()); $technician = $this->user()->getAttribute(\Library\Enums\SessionKeys::UserTypeObject); $project = new \Applications\PMTool\Models\Dao\Project(); $project->setPm_id($technician->pm_id()); //Load interface to query the database for projects $manager = $this->managers->getManagerOf('Project'); $lists[\Library\Enums\SessionKeys::UserProjects] = $manager->selectMany($project, "pm_id"); //Load interface to query the database for facilities $manager = $this->managers->getManagerOf('Facility'); $lists[\Library\Enums\SessionKeys::UserProjectFacilityList] = $manager->selectMany($project, "pm_id"); //Load interface to query the database for clients $manager = $this->managers->getManagerOf('Client'); $lists[\Library\Enums\SessionKeys::UserProjectClientList] = $manager->selectMany($project, "pm_id"); //SessionPM $manager = $this->managers->getManagerOf('Pm'); $pm = new \Applications\PMTool\Models\Dao\Project_manager(); $pm->setPm_id($technician->pm_id()); $pms = $manager->selectMany($pm, 'pm_id'); \Applications\PMTool\Helpers\PmHelper::StoreSessionPm($this, $pms[0], true); $ProjectsSession = \Applications\PMTool\Helpers\ProjectHelper::StoreSessionProjects($this, $lists); \Applications\PMTool\Helpers\TaskHelper::GetTasksForTechnician($this, $technician); $tasks = \Applications\PMTool\Helpers\TaskHelper::GetSessionTasks($this->user()); if (!is_array($tasks)) { $tasks = array(); } $task_id = $rq->getData("task_id"); $data = array(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::module => 'task', \Applications\PMTool\Resources\Enums\ViewVariablesKeys::objects => \Applications\PMTool\Helpers\CommonHelper::GetObjectListFromSessionArrayBySessionKey($tasks, \Library\Enums\SessionKeys::TaskObj), \Applications\PMTool\Resources\Enums\ViewVariablesKeys::properties => \Applications\PMTool\Helpers\CommonHelper::SetPropertyNamesForDualList(strtolower('task'))); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::data, $data); $sessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($this->user()); if ($sessionTask) { \Applications\PMTool\Helpers\ProjectHelper::GetAndStoreCurrentProject($this->user(), $sessionTask[\Library\Enums\SessionKeys::TaskObj]->project_id()); } else { $this->user()->unsetAttribute(\Library\Enums\SessionKeys::CurrentProject); } if (count($tasks) == 1) { $firstTask = reset($tasks); $task_id = $firstTask[\Library\Enums\SessionKeys::TaskObj]->task_id(); } //Set passed task as current task if ($task_id !== '' && !is_null($task_id)) { $sessionTask = \Applications\PMTool\Helpers\TaskHelper::SetCurrentSessionTask($this->user(), NULL, $task_id); $taskObj = $sessionTask[\Library\Enums\SessionKeys::TaskObj]; $manager = $this->managers()->getManagerOf('Project'); $project = new \Applications\PMTool\Models\Dao\Project(); $project->setProject_id($taskObj->project_id()); $projects = $manager->selectMany($project, 'project_id'); if ($projects) { \Applications\PMTool\Helpers\ProjectHelper::GetAndStoreCurrentProject($this->user(), $taskObj->project_id()); } //check if we passed a redirect URL too if ($rq->getData("onSuccess") !== '' && !is_null($rq->getData("onSuccess"))) { //rediect to it $this->Redirect($rq->getData("onSuccess")); } } $sessionProject = \Applications\PMTool\Helpers\ProjectHelper::GetCurrentSessionProject($this->user); if (count($tasks) == 1) { $this->Redirect(\Library\Enums\ResourceKeys\UrlKeys::MobileMap); } $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentTask, $sessionTask[\Library\Enums\SessionKeys::TaskObj]); //Fetch tooltip data from xml and pass to view as an array $tooltip_array = \Applications\PMTool\Helpers\PopUpHelper::getTooltipMsgForAttribute('{"targetcontroller":"task", "targetaction": "list", "targetattr": ["active-task-header","inactive-task-header"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::tooltip_message, $tooltip_array); //Get confirm msg for project deletion from context menu $confirm_msg = \Applications\PMTool\Helpers\PopUpHelper::getConfirmBoxMsg('{"targetcontroller":"task", "targetaction": "list", "operation": ["activate","addUniqueCheck"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::confirm_message, $confirm_msg); //Fetch prompt box data from xml and pass to view as an array //Also let's just fetch the message for the showForm view and reuse it $prompt_msg = \Applications\PMTool\Helpers\PopUpHelper::getPromptBoxMsg('{"targetcontroller":"task", "targetaction": "view", "operation": ["addNullCheck","addNullCheckForCopy"]}', $this->app->name()); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::prompt_message, $prompt_msg); $modules = $this->app()->router()->selectedRoute()->phpModules(); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::active_list, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::active_list]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::popup_msg, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::popup_msg]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::prompt_msg, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::popup_prompt]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariables\Popup::tooltip_message_module, $modules[\Applications\PMTool\Resources\Enums\PhpModuleKeys::tooltip_msg]); $this->page->addVar(\Applications\PMTool\Resources\Enums\ViewVariablesKeys::currentProject, $sessionProject[\Library\Enums\SessionKeys::ProjectObject]); }