コード例 #1
0
ファイル: CopyController.php プロジェクト: spiasecki/ubirimi
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $issueTypeSchemeId = $request->get('id');
     $type = $request->get('type');
     $issueTypeScheme = $this->getRepository(IssueTypeScheme::class)->getMetaDataById($issueTypeSchemeId);
     if ($issueTypeScheme['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('copy_issue_type_scheme')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $duplicateIssueTypeScheme = $this->getRepository(IssueTypeScheme::class)->getMetaDataByNameAndClientId($session->get('client/id'), mb_strtolower($name));
         if ($duplicateIssueTypeScheme) {
             $duplicateName = true;
         }
         if (!$emptyName && !$duplicateName) {
             $copiedIssueTypeScheme = new IssueTypeScheme($session->get('client/id'), $name, $description, $type);
             $currentDate = Util::getServerCurrentDateTime();
             $copiedIssueTypeSchemeId = $copiedIssueTypeScheme->save($currentDate);
             $issueTypeSchemeData = $this->getRepository(IssueTypeScheme::class)->getDataById($issueTypeSchemeId);
             while ($issueTypeSchemeData && ($data = $issueTypeSchemeData->fetch_array(MYSQLI_ASSOC))) {
                 $copiedIssueTypeScheme->addData($copiedIssueTypeSchemeId, $data['issue_type_id'], $currentDate);
             }
             $this->getLogger()->addInfo('Copy Yongo Issue Type Scheme ' . $issueTypeScheme['name'], $this->getLoggerContext());
             if ('workflow' == $type) {
                 return new RedirectResponse('/yongo/administration/workflows/issue-type-schemes');
             }
             return new RedirectResponse('/yongo/administration/issue-type-schemes');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Copy Issue Type Scheme';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/issue/issue_type_scheme/Copy.php', get_defined_vars());
 }
コード例 #2
0
ファイル: AddController.php プロジェクト: spiasecki/ubirimi
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $type = $request->get('type');
     if ($type == 'project') {
         $buttonLabel = 'Create Issue Type Scheme';
     } else {
         $buttonLabel = 'Create Workflow Issue Type Scheme';
     }
     $emptyIssueTypeName = false;
     $issueTypeExists = false;
     $allIssueTypes = $this->getRepository(IssueType::class)->getAll($session->get('client/id'));
     if ($request->request->has('new_type_scheme')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyIssueTypeName = true;
         }
         if (!$emptyIssueTypeName) {
             $issueTypeScheme = new IssueTypeScheme($session->get('client/id'), $name, $description, $type);
             $currentDate = Util::getServerCurrentDateTime();
             $issueTypeSchemeId = $issueTypeScheme->save($currentDate);
             foreach ($request->request as $key => $value) {
                 if (substr($key, 0, 11) == 'issue_type_') {
                     $issueTypeId = str_replace('issue_type_', '', $key);
                     $this->getRepository(IssueTypeScheme::class)->addData($issueTypeSchemeId, $issueTypeId, $currentDate);
                 }
             }
             $this->getLogger()->addInfo('ADD Yongo Issue Type Scheme ' . $name, $this->getLoggerContext());
             if ($type == 'project') {
                 return new RedirectResponse('/yongo/administration/issue-type-schemes');
             }
             return new RedirectResponse('/yongo/administration/workflows/issue-type-schemes');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Type Scheme';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/issue/issue_type_scheme/Add.php', get_defined_vars());
 }
コード例 #3
0
ファイル: IssueTypeScheme.php プロジェクト: spiasecki/ubirimi
 public function deleteByClientId($clientId)
 {
     $issueTypeSchemes = IssueTypeScheme::getByClientId($clientId);
     while ($issueTypeSchemes && ($issueTypeScheme = $issueTypeSchemes->fetch_array(MYSQLI_ASSOC))) {
         IssueTypeScheme::deleteDataByIssueTypeSchemeId($issueTypeScheme['id']);
         IssueTypeScheme::deleteById($issueTypeScheme['id']);
     }
 }