示例#1
0
 public function execute($context)
 {
     $context['APPLICATION']->AddHeadScript('/js/forms.js');
     //$availableSessionsIDs = $this->registry->getModel('Auth')->getAvailableSessions($_SESSION['accesses'], $context['project']['projectID']);
     $viewHelper = new \Ecoplay\View\Helper();
     if (isset($_POST['action'])) {
         if ($_POST['action'] == 'add') {
             if ($_POST['name'] && $_POST['package']) {
                 $this->registry->getDbHelper('TestsHelper')->addSession(array('projectID' => $context['project']['projectID'], 'packageID' => intval($_POST['package']), 'name' => $_POST['name'], 'status' => 'active', 'active' => 1));
             }
         } elseif ($_POST['action'] == 'edit') {
             $session = $this->registry->getDbHelper('TestsHelper')->findSessionByID(intval($_POST['session_id']));
             if ($session && $_POST['name']) {
                 $res = $this->registry->getDbHelper('TestsHelper')->editSession($session['sessionID'], array('name' => $_POST['name']));
             }
         }
     }
     $sessionsCnt = 0;
     //if (count($availableSessionsIDs)) {
     $sessions = $this->registry->getDbHelper('TestsHelper')->getSessionsInfoByProjectID($context['project']['projectID']);
     $sessionsCnt = count($sessions);
     $this->component->arResult['table_data'] = str_replace("'", "\\'", $viewHelper->prepareJsonDataForTable($sessions, array('sessionID', 'name', 'status', 'package_name', 'cnt')));
     /*}
       else {
         $this->component->arResult['table_data'] = null;
       }*/
     $this->component->arResult['cnt'] = $sessionsCnt;
     $this->component->arResult['packages'] = $this->registry->getDbHelper('TestsHelper')->getAllPackages();
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'Группы тестируемых');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('title' => 'Главная', 'link' => '/'), 1 => array('title' => 'Проекты', 'link' => '/projects/'), 2 => array('title' => $context['project']['project_name'], 'link' => '/projects/' . $context['project']['projectID'] . '/continuing/stat/'), 3 => array('title' => 'Группы тестируемых'))));
     $this->component->IncludeComponentTemplate('template_testing');
 }
示例#2
0
 public function execute($context)
 {
     $scripts = $this->registry->getDbHelper('WorkflowHelper')->getProjectScripts($context['project']['projectID']);
     $viewHelper = new \Ecoplay\View\Helper();
     $this->component->arResult['cnt'] = count($scripts);
     $tData = $viewHelper->prepareJsonDataForTable($scripts, array('scriptID', 'name', 'text'));
     $this->component->arResult['table_data'] = $tData;
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'WorkFlow скрипты');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('title' => 'Главная', 'link' => '/'), 1 => array('title' => 'Проекты', 'link' => '/projects/'), 2 => array('link' => '/projects/' . $context['project']['projectID'] . '/continuing/info/', 'title' => $context['project']['project_name']), 3 => array('title' => 'WorkFlow скрипты'))));
     $this->component->IncludeComponentTemplate();
 }
示例#3
0
 public function execute($context)
 {
     $availableSessionsIDs = $this->registry->getModel('Auth')->getAvailableSessions($_SESSION['accesses'], $context['project']['projectID']);
     $viewHelper = new \Ecoplay\View\Helper();
     $sessionsCnt = 0;
     if (count($availableSessionsIDs)) {
         $sessions = $this->registry->getDbHelper('ProjectsHelper')->getSessionsInfoBySessionsIDs($context['project']['projectID'], $availableSessionsIDs);
         $this->component->arResult['sessions'] = $sessions;
         $sessionsCnt = count($sessions);
         $this->component->arResult['table_data'] = str_replace("'", "\\'", $viewHelper->prepareJsonDataForTable($sessions, array('sessionID', 'name', 'status', 'start_dt', 'finish_dt', 'blank_name', 'assess_count', 'myCSS_path'), array('start_dt' => 'date', 'finish_dt' => 'date')));
     } else {
         $this->component->arResult['table_data'] = null;
     }
     $this->component->arResult['cnt'] = $sessionsCnt;
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'Группы оцениваемых');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('title' => 'Главная', 'link' => '/'), 1 => array('title' => 'Проекты', 'link' => '/projects/'), 2 => array('title' => $context['project']['project_name'], 'link' => '/projects/' . $context['project']['projectID'] . '/continuing/stat/'), 3 => array('title' => 'Группы оцениваемых'))));
     $this->component->arResult['projectID'] = $context['project']['projectID'];
     $this->component->IncludeComponentTemplate();
 }
示例#4
0
 public function execute($context)
 {
     // проверка прав доступа к разделу
     if (!$this->registry->getModel('Auth')->checkAccess($_SESSION['accesses'], 'seances', $context['project']['projectID'])) {
         $this->registry->getModel('Auth')->restrict();
     }
     $availableSessionsIDs = $this->registry->getModel('Auth')->getAvailableSessions($_SESSION['accesses'], $context['project']['projectID'], $context['project']['project_type']);
     $viewHelper = new \Ecoplay\View\Helper();
     if (count($availableSessionsIDs)) {
         if (isset($_POST['reseted_id'])) {
             // обнуляем заполнение
             $seance = $this->registry->getDbHelper('TestsSeancesHelper')->findSeanceByID($_POST['reseted_id']);
             if ($seance) {
                 $respondent = $this->registry->getDbHelper('MembersHelper')->findRespondentById($seance['respondentID']);
                 $this->registry->getModel('Tests')->deleteSeance($seance);
                 if ($respondent) {
                     $this->registry->getModel('Tests')->createSeance($respondent);
                 }
             }
         }
         $cnt = $this->registry->getDbHelper('TestsSeancesHelper')->getProjectsSeancesCount($context['project']['projectID']);
         $onPage = 100;
         $pagesCnt = ceil($cnt / $onPage);
         $page = $_GET['PAGE'] && $_GET['PAGE'] <= $pagesCnt ? intval($_GET['PAGE']) : 1;
         $navResult = new \CDBResult();
         $navResult->NavPageCount = ceil($cnt / $onPage);
         $navResult->NavPageNomer = $page;
         $navResult->NavNum = 1;
         $navResult->NavPageSize = $onPage;
         $navResult->NavRecordCount = $cnt;
         $context['APPLICATION']->IncludeComponent('ecoplay:system.pagenavigation', '', array('NAV_RESULT' => $navResult, 'NAV_URL' => '/projects/' . $context['project']['projectID'] . '/groups/seances/'));
         $seances = $this->registry->getDbHelper('TestsSeancesHelper')->getSeancesByProjectIDAndSessionsIds($context['project']['projectID'], $availableSessionsIDs, $page, $onPage);
         $statesNames = $this->registry->getDbHelper('BlanksHelper')->getSeancesStatesNames();
         $this->component->arResult['table_data'] = str_replace("'", "\\'", $viewHelper->prepareJsonDataForTable($seances, array('tests_seanceID', 'name', 'surname', 'email', 'state'), array(), array('state' => $statesNames)));
         $this->component->arResult['cnt'] = count($seances);
     } else {
         $this->component->arResult['table_data'] = null;
         $this->component->arResult['cnt'] = 0;
     }
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'Сеансы заполнения');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('link' => '/', 'title' => 'Главная'), 1 => array('link' => '/projects/', 'title' => 'Проекты'), 2 => array('link' => '/projects/' . $context['project']['projectID'] . '/continuing/stat/', 'title' => $context['project']['project_name']), 3 => array('link' => '/projects/' . $context['project']['projectID'] . '/groups/', 'title' => 'Группы оцениваемых'), 4 => array('title' => 'Сеансы заполнения'))));
     $this->component->IncludeComponentTemplate('template_testing');
 }
示例#5
0
 public function execute($context)
 {
     // проверка прав доступа к разделу
     if (!$this->registry->getModel('Auth')->checkAccess($_SESSION['accesses'], 'seances', $context['project']['projectID'])) {
         $this->registry->getModel('Auth')->restrict();
     }
     $availableSessionsIDs = $this->registry->getModel('Auth')->getAvailableSessions($_SESSION['accesses'], $context['project']['projectID']);
     $viewHelper = new \Ecoplay\View\Helper();
     if (count($availableSessionsIDs)) {
         $seances = $this->registry->getDbHelper('ProjectsHelper')->getSeancesByProjectIDAndSessionsIds($context['project']['projectID'], $availableSessionsIDs);
         $this->component->arResult['seances'] = $seances;
         $this->component->arResult['table_data'] = str_replace("'", "\\'", $viewHelper->prepareJsonDataForTable($seances, array('seanceID', 'name', 'surname', 'email', 'start_dt', 'finish_dt', 'assess', 'role', 'answered')));
         $this->component->arResult['cnt'] = count($seances);
     } else {
         $this->component->arResult['table_data'] = null;
         $this->component->arResult['cnt'] = 0;
     }
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'Сеансы заполнения');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('link' => '/', 'title' => 'Главная'), 1 => array('link' => '/projects/', 'title' => 'Проекты'), 2 => array('link' => '/projects/' . $context['project']['projectID'] . '/continuing/stat/', 'title' => $context['project']['project_name']), 3 => array('link' => '/projects/' . $context['project']['projectID'] . '/groups/', 'title' => 'Группы оцениваемых'), 4 => array('title' => 'Сеансы заполнения'))));
     $this->component->IncludeComponentTemplate();
 }
示例#6
0
 public function execute($context)
 {
     $context['APPLICATION']->AddHeadScript('/js/forms.js');
     // проверка прав доступа к разделу
     if (!$this->registry->getModel('Auth')->checkAccess($_SESSION['accesses'], 'members', $context['project']['projectID'])) {
         $this->registry->getModel('Auth')->restrict();
     }
     $this->component->arResult['canImport'] = $this->registry->getModel('Auth')->checkAccess($_SESSION['accesses'], 'imports', $context['project']['projectID']);
     $languagesIDs = json_decode($context['project']['~languages']);
     $languagesSrc = $this->registry->getDbHelper('TranslationHelper')->getLanguagesByIDs($languagesIDs);
     $languages = array();
     foreach ($languagesSrc as $language) {
         $languages[$language['langID']] = $language['name'];
     }
     $this->component->arResult['languages'] = $languages;
     $this->component->arResult['languagesFull'] = $languagesSrc;
     $sorts = array('projects_memberID' => 'projects_memberID', 'FIO' => 'FIO', 'position' => 'position', 'email' => 'email', 'private_lk_access_key' => 'private_lk_access_key', 'assess_count' => 'assess_count', 'respondent_count' => 'respondent_count', 'userID' => 'userID', 'projectID' => 'projectID', 'status' => 'status', 'langID' => 'langID', 'language' => 'language', 'department' => 'department');
     if (isset($_GET['sort']) && array_key_exists($_GET['sort'], $sorts)) {
         $sort = $_GET['sort'];
     } else {
         $sort = 'projects_memberID';
     }
     $order = isset($_GET['order']) && in_array($_GET['order'], array('asc', 'desc')) ? $_GET['order'] : 'asc';
     $filterQueryString = DataFilter::getFilterQueryString($_GET);
     $this->component->arResult['filterQueryString'] = $filterQueryString;
     // настройки фильтров для данных
     $filters = array(0 => array('title' => 'Имя', 'name' => 'name', 'type' => 'text', 'data_type' => 'string', 'field' => '`name`'), 1 => array('title' => 'Фамилия', 'name' => 'surname', 'type' => 'text', 'data_type' => 'string', 'field' => '`surname`'), 2 => array('title' => 'ID', 'name' => 'id', 'type' => 'text', 'data_type' => 'number', 'field' => '`projects_memberID`'), 3 => array('title' => 'Текст', 'name' => 'text', 'type' => 'text', 'data_type' => 'string', 'field' => array('`search_text`')), 4 => array('title' => 'Язык ', 'name' => 'language', 'type' => 'select', 'data_type' => 'number', 'field' => '`langID`', 'values' => array(0 => 'Любой') + $languages), 5 => array('title' => 'Оценивается', 'name' => 'assess', 'type' => 'range', 'data_type' => 'number', 'field' => '`assess_count`', 'sql_type' => 'where'), 6 => array('title' => 'Оценивает ', 'name' => 'respondent', 'type' => 'range', 'data_type' => 'number', 'field' => '`respondent_count`', 'sql_type' => 'where'));
     $filterData = array('FILTERS' => $filters, 'BASE_URL' => '/projects/' . $context['project']['projectID'] . '/settings/members/', 'SORT' => $sort, 'ORDER' => $order);
     // проверяем, введен ли фильтр
     $filterValue = DataFilter::getFilterValue($filters, $_GET, $this->registry->getDbConnect());
     if ($filterValue['valid']) {
         $filterData = array_merge($filterData, $filterValue);
     }
     // компонент отображения фильтра
     $context['APPLICATION']->IncludeComponent('ecoplay:data.filter', '', $filterData);
     $cnt = $this->registry->getDbHelper('MembersHelper')->getProjectsMembersCount($context['project']['projectID'], $filterValue['filter_strings']);
     $onPage = 100;
     $pagesCnt = ceil($cnt / $onPage);
     $page = $_GET['PAGE'] && $_GET['PAGE'] <= $pagesCnt ? intval($_GET['PAGE']) : 1;
     $navResult = new \CDBResult();
     $navResult->NavPageCount = ceil($cnt / $onPage);
     $navResult->NavPageNomer = $page;
     $navResult->NavNum = 1;
     $navResult->NavPageSize = $onPage;
     $navResult->NavRecordCount = $cnt;
     $context['APPLICATION']->IncludeComponent('ecoplay:system.pagenavigation', '', array('NAV_RESULT' => $navResult, 'NAV_URL' => '/projects/' . $context['project']['projectID'] . '/settings/members/', 'NAV_QUERY_STRING' => 'sort=' . $sort . '&order=' . $order . ($filterQueryString ? '&' . $filterQueryString : '')));
     $membersSrc = $this->registry->getDbHelper('MembersHelper')->getProjectsMembersForView($context['project']['projectID'], $page, $onPage, $sorts[$sort], $order, $filterValue['filter_strings']);
     $members = array();
     foreach ($membersSrc as $member) {
         $member['FIO'] = $member['name'] && $member['surname'] ? '<span class="surname">' . $member['surname'] . '</span> <span class="name">' . $member['name'] . '</span>' : '<span class="surname">' . $member['surname'] . '</span><span class="name">' . $member['name'] . '</span>';
         $members[] = $member;
     }
     $viewHelper = new \Ecoplay\View\Helper();
     $this->component->arResult['cnt'] = count($this->component->arResult['members']);
     $tData = str_replace("'", "\\'", $viewHelper->prepareJsonDataForTable($members, array('projects_memberID', 'FIO', 'position', 'email', 'private_lk_access_key', 'assess_count', 'respondent_count', 'userID', 'projectID', 'status', 'langID', 'language', 'department'), array(), array('language' => $languages)));
     $tData = str_replace("\\", "\\\\", $tData);
     $this->component->arResult['table_data'] = $tData;
     $this->component->arResult['projectID'] = $context['project']['projectID'];
     $this->component->arResult['sort'] = $sort;
     $this->component->arResult['order'] = $order;
     $context['APPLICATION']->SetPageProperty('pageMainTitle', 'Все участники');
     $context['APPLICATION']->SetPageProperty('navigation', $viewHelper->generateNavigation(array(0 => array('title' => 'Главная', 'link' => '/'), 1 => array('title' => 'Проекты', 'link' => '/projects/'), 2 => array('link' => '/projects/' . $context['project']['projectID'] . '/continuing/info/', 'title' => $context['project']['project_name']), 3 => array('title' => 'Участники проекта'))));
     $this->component->IncludeComponentTemplate();
 }