Example #1
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $workflowId = $request->get('id');
     $workflow = $this->getRepository(Workflow::class)->getMetaDataById($workflowId);
     if ($workflow['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('copy_workflow')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $workflowAlreadyExisting = $this->getRepository(Workflow::class)->getByClientIdAndName($session->get('client/id'), $name);
         if ($workflowAlreadyExisting) {
             $duplicateName = true;
         }
         if (!$emptyName && !$workflowAlreadyExisting) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(Workflow::class)->copy($session->get('client/id'), $workflowId, $name, $description, $currentDate);
             $this->getLogger()->addInfo('Copy Yongo Workflow ' . $workflow['name'], $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/workflows');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Copy Workflow';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/workflow/Copy.php', get_defined_vars());
 }
Example #2
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = $session->get('client/id');
     $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     $name = Util::cleanRegularInputField($request->request->get('name'));
     $description = $request->request->get('description');
     $location = $request->request->get('location');
     $calendarId = $request->request->get('calendar');
     $start = $request->request->get('start');
     $end = $request->request->get('end');
     $color = '#' . $request->request->get('color');
     $repeatData = $request->request->get('repeat_data');
     if (!empty($name)) {
         $date = Util::getServerCurrentDateTime();
         ini_set('memory_limit', '1024M');
         $eventId = $this->getRepository(CalendarEvent::class)->add($calendarId, $session->get('user/id'), $name, $description, $location, $start, $end, $color, $date, $repeatData, $clientSettings);
         // add the default reminders
         $reminders = $this->getRepository(UbirimiCalendar::class)->getReminders($calendarId);
         while ($reminders && ($reminder = $reminders->fetch_array(MYSQLI_ASSOC))) {
             $this->getRepository(CalendarEvent::class)->addReminder($eventId, $reminder['cal_event_reminder_type_id'], $reminder['cal_event_reminder_period_id'], $reminder['value']);
         }
         $this->getLogger()->addInfo('ADD EVENTS event ' . $name, $this->getLoggerContext());
     }
     return new Response('');
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $screenId = $request->get('id');
     $screenMetadata = $this->getRepository(Screen::class)->getMetaDataById($screenId);
     if ($screenMetadata['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $position = $request->get('position');
     $fieldId = $request->get('field_id');
     if ($fieldId && $position) {
         $this->getRepository(Screen::class)->updatePositionForField($screenId, $fieldId, $position);
         return new RedirectResponse('/yongo/administration/screen/configure/' . $screenId);
     }
     $fields = $this->getRepository(Field::class)->getByClient($session->get('client/id'));
     if ($request->request->has('add_screen_field')) {
         $fieldId = Util::cleanRegularInputField($request->request->get('field'));
         if ($fieldId != -1) {
             $currentDate = Util::getServerCurrentDateTime();
             $lastOrder = $this->getRepository(Screen::class)->getLastOrderNumber($screenId);
             $this->getRepository(Screen::class)->addData($screenId, $fieldId, $lastOrder + 1, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Screen Data ' . $screenMetadata['name'], $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screen/configure/' . $screenId);
         }
     }
     $screenData = $this->getRepository(Screen::class)->getDataById($screenId);
     $menuSelectedCategory = 'issue';
     $source = $request->get('source');
     $projectId = null;
     if ($source == 'project_screen' || $source == 'project_field') {
         $projectId = $request->get('project_id');
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Screen';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/screen/Configure.php', get_defined_vars());
 }
Example #4
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $calendarId = $request->get('id');
     $calendar = $this->getRepository(UbirimiCalendar::class)->getById($calendarId);
     $defaultReminders = $this->getRepository(UbirimiCalendar::class)->getReminders($calendarId);
     if ($calendar['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     if ($request->request->has('edit_calendar_settings')) {
         $date = Util::getServerCurrentDateTime();
         $this->getRepository(UbirimiCalendar::class)->deleteReminders($calendarId);
         $this->getRepository(UbirimiCalendar::class)->deleteSharesByCalendarId($calendarId);
         // reminder information
         foreach ($request->request as $key => $value) {
             if (strpos($key, 'reminder_type_') !== false) {
                 $indexReminder = str_replace('reminder_type_', '', $key);
                 $reminderType = Util::cleanRegularInputField($request->request->get($key));
                 $reminderValue = $request->request->get('value_reminder_' . $indexReminder);
                 $reminderPeriod = $request->request->get('reminder_period_' . $indexReminder);
                 // add the reminder
                 if (is_numeric($reminderValue)) {
                     $this->getRepository(UbirimiCalendar::class)->addReminder($calendarId, $reminderType, $reminderPeriod, $reminderValue);
                 }
             }
         }
         $this->getLogger()->addInfo('UPDATE Calendar Default Reminders ' . $calendar['name'], $this->getLoggerContext());
         return new RedirectResponse('/calendar/calendars');
     }
     $menuSelectedCategory = 'calendar';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_CALENDAR_NAME . ' / Calendar: ' . $calendar['name'] . ' / Settings';
     return $this->render(__DIR__ . '/../Resources/views/Settings.php', get_defined_vars());
 }
Example #5
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyPriorityName = false;
     $priorityExists = false;
     if ($request->request->has('new_priority')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $color = Util::cleanRegularInputField($request->request->get('color'));
         if (empty($name)) {
             $emptyPriorityName = true;
         }
         // check for duplication
         $priority = $this->getRepository(IssueSettings::class)->getByName($session->get('client/id'), 'priority', mb_strtolower($name));
         if ($priority) {
             $priorityExists = true;
         }
         if (!$priorityExists && !$emptyPriorityName) {
             $iconName = 'generic.png';
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueSettings::class)->create('issue_priority', $session->get('client/id'), $name, $description, $iconName, $color, $currentDate);
             $this->getLogger()->addInfo('ADD Yongo Issue Priority ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/issue/priorities');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Priority';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/issue/priority/Add.php', get_defined_vars());
 }
Example #6
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $smtpServerId = $request->get('id');
     $smtpServer = $this->getRepository(SMTPServer::class)->getById($smtpServerId);
     $session->set('selected_product_id', -1);
     $menuSelectedCategory = 'general_mail';
     $emptyName = false;
     $emptyFromAddress = false;
     $emptyEmailPrefix = false;
     $emptyHostname = false;
     if ($request->request->has('edit_smtp')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $fromAddress = Util::cleanRegularInputField($request->request->get('from_address'));
         $emailPrefix = Util::cleanRegularInputField($request->request->get('email_prefix'));
         $protocol = Util::cleanRegularInputField($request->request->get('protocol'));
         $hostname = Util::cleanRegularInputField($request->request->get('hostname'));
         $port = Util::cleanRegularInputField($request->request->get('port'));
         $timeout = Util::cleanRegularInputField($request->request->get('timeout'));
         $tls = $request->request->has('tls') ? 1 : 0;
         $username = Util::cleanRegularInputField($request->request->get('username'));
         $password = Util::cleanRegularInputField($request->request->get('password'));
         $date = Util::getServerCurrentDateTime();
         $this->getRepository(SMTPServer::class)->updateById($smtpServerId, $name, $description, $fromAddress, $emailPrefix, $protocol, $hostname, $port, $timeout, $tls, $username, $password, $date);
         $this->getLogger()->addInfo('UPDATE SMTP Server ' . $name, $this->getLoggerContext());
         $session->set('client/settings/smtp', $this->getRepository(SMTPServer::class)->getById($smtpServerId));
         return new RedirectResponse('/general-settings/smtp-settings');
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / GeneralSettings Settings / Update SMTP Server Settings';
     return $this->render(__DIR__ . '/../../Resources/views/smtp/Edit.php', get_defined_vars());
 }
Example #7
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'issue';
     $emptyName = false;
     $fields = $this->getRepository(Field::class)->getByClient($session->get('client/id'));
     if ($request->request->has('add_screen')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $currentDate = Util::getServerCurrentDateTime();
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $screen = new Screen($session->get('client/id'), $name, $description);
             $screenId = $screen->save($currentDate);
             $order = 0;
             foreach ($request->request as $key => $value) {
                 if (substr($key, 0, 6) == 'field_') {
                     $order++;
                     $fieldId = str_replace('field_', '', $key);
                     $this->getRepository(Screen::class)->addData($screenId, $fieldId, $order, $currentDate);
                 }
             }
             $this->getLogger()->addInfo('ADD Yongo Screen ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screens');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Screen';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/screen/Add.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $fieldConfigurationId = $request->get('field_configuration_id');
     $fieldId = $request->get('id');
     $fieldConfiguration = $this->getRepository(FieldConfiguration::class)->getMetaDataById($fieldConfigurationId);
     $field = $this->getRepository(Field::class)->getById($fieldId);
     $screens = $this->getRepository(Screen::class)->getAll($session->get('client/id'));
     if ($request->request->has('edit_field_configuration_screen')) {
         $currentDate = Util::getServerCurrentDateTime();
         $this->getRepository(Screen::class)->deleteDataByFieldId($fieldId);
         foreach ($request->request as $key => $value) {
             if (substr($key, 0, 13) == 'field_screen_') {
                 $data = str_replace('field_screen_', '', $key);
                 $values = explode('_', $data);
                 $fieldSelectedId = $values[0];
                 $screenSelectedId = $values[1];
                 $this->getRepository(Screen::class)->addData($screenSelectedId, $fieldSelectedId, null, $currentDate);
             }
         }
         return new RedirectResponse('/yongo/administration/field-configuration/edit/' . $fieldConfigurationId);
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Field Configuration Screen';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/field/configuration/EditScreen.php', get_defined_vars());
 }
Example #9
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $projectId = $request->get('id');
     $emptyName = false;
     $queueExists = false;
     $queues = $this->getRepository(Queue::class)->getByProjectId($projectId);
     $selectedQueueId = -1;
     if ($queues) {
         $firstQueue = $queues->fetch_array(MYSQLI_ASSOC);
         $selectedQueueId = $firstQueue['id'];
     }
     if ($request->request->has('new_queue')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $queueDefinition = Util::cleanRegularInputField($request->request->get('definition'));
         if (empty($name)) {
             $emptyName = true;
         }
         // check for duplication
         $queue = $this->getRepository(Queue::class)->getByName($projectId, mb_strtolower($name));
         if ($queue) {
             $queueExists = true;
         }
         if (!$queueExists && !$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $defaultColumns = 'code#summary#priority#status#created#updated#reporter#assignee';
             $queueId = $this->getRepository(Queue::class)->save($session->get('user/id'), $projectId, $name, $description, $queueDefinition, $defaultColumns, $currentDate);
             return new RedirectResponse('/helpdesk/queues/' . $projectId . '/' . $queueId);
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_HELP_DESK_NAME . ' / Create Queue';
     return $this->render(__DIR__ . '/../../Resources/views/queue/AddQueue.php', get_defined_vars());
 }
Example #10
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $duplicateOrganization = false;
     $organizationId = $request->get('id');
     $organization = $this->getRepository(Organization::class)->getById($organizationId);
     if ($request->request->has('edit_organization')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $organizationDuplicate = $this->getRepository(Organization::class)->getByName($session->get('client/id'), mb_strtolower($name), $organizationId);
         if ($organizationDuplicate) {
             $duplicateOrganization = true;
         }
         if (!$emptyName && !$organizationDuplicate) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(Organization::class)->updateById($organizationId, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Organization ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/helpdesk/administration/organizations');
         }
     }
     $menuSelectedCategory = 'helpdesk_organizations';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_HELP_DESK_NAME . ' / Create Organization';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/organization/EditOrganization.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = UbirimiContainer::get()['session']->get('client/id');
     $loggedInUserId = UbirimiContainer::get()['session']->get('user/id');
     $workflowStepIdFrom = $request->request->get('step_id_from');
     $workflowStepIdTo = $request->request->get('step_id_to');
     $workflowId = $request->request->get('workflow_id');
     $issueId = $request->request->get('issue_id');
     $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     $workflowData = $this->getRepository(Workflow::class)->getDataByStepIdFromAndStepIdTo($workflowId, $workflowStepIdFrom, $workflowStepIdTo);
     $issue = $this->getRepository(Issue::class)->getByParameters(array('issue_id' => $issueId), $loggedInUserId);
     $canBeExecuted = $this->getRepository(Workflow::class)->checkConditionsByTransitionId($workflowData['id'], $loggedInUserId, $issue);
     if ($canBeExecuted) {
         $smtpSettings = $session->get('client/settings/smtp');
         if ($smtpSettings) {
             Email::$smtpSettings = $smtpSettings;
         }
         $date = Util::getServerCurrentDateTime();
         $this->getRepository(WorkflowFunction::class)->triggerPostFunctions($clientId, $issue, $workflowData, array(), $loggedInUserId, $date);
         // update the date_updated field
         $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $date), $date);
         return new Response('success');
     } else {
         return new Response('can_not_be_executed');
     }
 }
Example #12
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $subTaskFlag = $request->query->has('type') ? 1 : 0;
     $emptyName = false;
     if ($request->request->has('new_type')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $iconName = 'generic.png';
             $newIssueTypeId = $this->getRepository(IssueSettings::class)->createIssueType($session->get('client/id'), $name, $description, $subTaskFlag, $iconName, $currentDate);
             $this->getLogger()->addInfo('ADD Yongo Issue Type ' . $name, $this->getLoggerContext());
             if ($subTaskFlag) {
                 return new RedirectResponse('/yongo/administration/issue-sub-tasks');
             }
             return new RedirectResponse('/yongo/administration/issue-types');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Type';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/issue/type/Add.php', get_defined_vars());
 }
Example #13
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyValue = false;
     $duplicateValue = false;
     $customFieldId = $request->get('id');
     $field = $this->getRepository(Field::class)->getById($customFieldId);
     if ($request->request->has('new_custom_value')) {
         $value = Util::cleanRegularInputField($request->request->get('value'));
         if (empty($value)) {
             $emptyValue = true;
         }
         if (!$emptyValue) {
             $customValueExists = $this->getRepository(Field::class)->getDataByFieldIdAndValue($customFieldId, $value);
             if ($customValueExists) {
                 $duplicateValue = true;
             }
         }
         if (!$emptyValue && !$duplicateValue) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(Field::class)->addData($customFieldId, $value, $currentDate);
             $this->getLogger()->addInfo('ADD Field Custom Value ' . $value, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/custom-fields/define/' . $customFieldId);
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Add Custom Field Value';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/field/custom/AddValue.php', get_defined_vars());
 }
Example #14
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'calendars';
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('confirm_new_calendar')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $color = Util::cleanRegularInputField($request->request->get('color'));
         if (empty($name)) {
             $emptyName = true;
         }
         $calendarSameName = $this->getRepository(UbirimiCalendar::class)->getByName($session->get('user/id'), $name);
         if ($calendarSameName) {
             $duplicateName = true;
         }
         if (!$emptyName && !$duplicateName) {
             $currentDate = Util::getServerCurrentDateTime();
             $calendarId = $this->getRepository(UbirimiCalendar::class)->save($session->get('user/id'), $name, $description, $color, $currentDate);
             // add default reminders
             $this->getRepository(UbirimiCalendar::class)->addReminder($calendarId, ReminderType::REMINDER_EMAIL, ReminderPeriod::PERIOD_MINUTE, 30);
             $this->getLogger()->addInfo('ADD EVENTS calendar ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/calendar/calendars');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_CALENDAR_NAME . ' / Create Calendar';
     return $this->render(__DIR__ . '/../Resources/views/Add.php', get_defined_vars());
 }
Example #15
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $Id = $request->get('id');
     $issueType = $this->getRepository(IssueType::class)->getById($Id);
     if ($issueType['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $typeExists = false;
     if ($request->request->has('edit_type')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         // check for duplication
         $type = $this->getRepository(IssueSettings::class)->getByName($session->get('client/id'), 'type', mb_strtolower($name), $Id);
         if ($type) {
             $typeExists = true;
         }
         if (!$typeExists && !$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueType::class)->updateById($Id, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Issue Type ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/issue-sub-tasks');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Issue Type';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/issue/type/Edit.php', get_defined_vars());
 }
Example #16
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $loggedInUserId = $session->get('user/id');
     $workLogId = $request->request->get('id');
     $issueId = $request->request->get('issue_id');
     $remainingTime = $request->request->get('remaining');
     $workLog = $this->getRepository(WorkLog::class)->getById($workLogId);
     $timeSpent = $workLog['time_spent'];
     $this->getRepository(WorkLog::class)->deleteById($workLogId);
     $issueQueryParameters = array('issue_id' => $issueId);
     $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $session->get('user/id'));
     $previousEstimate = $issue['remaining_estimate'];
     if ($remainingTime == 'automatic') {
         $remainingTime = '+' . $timeSpent;
     }
     $remainingTime = $this->getRepository(WorkLog::class)->adjustRemainingEstimate($issue, $timeSpent, $remainingTime, $session->get('yongo/settings/time_tracking_hours_per_day'), $session->get('yongo/settings/time_tracking_days_per_week'), $session->get('user/id'));
     $currentDate = Util::getServerCurrentDateTime();
     $fieldChanges = array(array('time_spent', $workLog['time_spent'], 0), array('remaining_estimate', $previousEstimate, $remainingTime), array('worklog_time_spent', $workLog['time_spent'], null));
     $this->getRepository(Issue::class)->updateHistory($issue['id'], $session->get('user/id'), $fieldChanges, $currentDate);
     // update the date_updated field
     $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $currentDate), $currentDate);
     // send the email notification
     $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']);
     $issueEventData = array('user_id' => $loggedInUserId, 'remaining_estimate' => $remainingTime, 'time_spent' => $workLog['time_spent']);
     $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData);
     UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_WORK_LOG_DELETED, $issueEvent);
     return new Response($remainingTime);
 }
Example #17
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $allIssueTypes = $this->getRepository(IssueType::class)->getAll($session->get('client/id'));
     if ($request->request->has('new_issue_type_screen_scheme')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $issueTypeScreenScheme = new IssueTypeScreenScheme($session->get('client/id'), $name, $description);
             $currentDate = Util::getServerCurrentDateTime();
             $issueTypeScreenSchemeId = $issueTypeScreenScheme->save($currentDate);
             $issueTypes = $this->getRepository(IssueType::class)->getAll($session->get('client/id'));
             while ($issueType = $issueTypes->fetch_array(MYSQLI_ASSOC)) {
                 $this->getRepository(IssueTypeScreenScheme::class)->addData($issueTypeScreenSchemeId, $issueType['id'], $currentDate);
             }
             $this->getLogger()->addInfo('ADD Yongo Issue Type Screen Scheme ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screens/issue-types');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Type Screen Scheme';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/screen/issue_type_scheme/Add.php', get_defined_vars());
 }
Example #18
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $permissionRoleId = $request->get('id');
     $perm_role = $this->getRepository(Role::class)->getById($permissionRoleId);
     if ($perm_role['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $alreadyExists = false;
     if ($request->request->has('confirm_edit_perm_role')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $role = $this->getRepository(Role::class)->getByName($session->get('client/id'), $name, $permissionRoleId);
         if ($role) {
             $alreadyExists = true;
         }
         if (!$emptyName && !$alreadyExists) {
             $date = Util::getServerCurrentDateTime();
             $this->getRepository(Role::class)->updateById($permissionRoleId, $name, $description, $date);
             $this->getLogger()->addInfo('UPDATE Yongo Project Role ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/roles');
         }
     }
     $menuSelectedCategory = 'user';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Project Role';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/role/Edit.php', get_defined_vars());
 }
Example #19
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $loggedInUserId = $session->get('user/id');
     $issueId = $request->request->get('id');
     $timeSpentPost = trim(str_replace(" ", '', $request->request->get('time_spent')));
     $dateStartedString = $request->request->get('date_started');
     $remainingTime = $request->request->get('remaining');
     $comment = $request->request->get('comment');
     $dateStarted = \DateTime::createFromFormat('d-m-Y H:i', $dateStartedString);
     $dateStartedString = date_format($dateStarted, 'Y-m-d H:i');
     if (is_numeric($timeSpentPost)) {
         $timeSpentPost = $timeSpentPost . $session->get('yongo/settings/time_tracking_default_unit');
     }
     if ($timeSpentPost) {
         $currentDate = Util::getServerCurrentDateTime();
         $issueQueryParameters = array('issue_id' => $issueId);
         $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $loggedInUserId);
         $this->getRepository(WorkLog::class)->addLog($issueId, $loggedInUserId, $timeSpentPost, $dateStartedString, $comment, $currentDate);
         $remainingTime = $this->getRepository(WorkLog::class)->adjustRemainingEstimate($issue, $timeSpentPost, $remainingTime, $session->get('yongo/settings/time_tracking_hours_per_day'), $session->get('yongo/settings/time_tracking_days_per_week'), $loggedInUserId);
         $fieldChanges = array(array('time_spent', null, $timeSpentPost), array('remaining_estimate', $issue['remaining_estimate'], $remainingTime));
         $this->getRepository(Issue::class)->updateHistory($issue['id'], $loggedInUserId, $fieldChanges, $currentDate);
         // update the date_updated field
         $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $currentDate), $currentDate);
         $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']);
         $issueEventData = array('user_id' => $loggedInUserId, 'comment' => $comment, 'date_started' => $dateStartedString, 'time_spent' => $timeSpentPost);
         $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData);
         UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_WORK_LOGGED, $issueEvent);
     }
     if (null == $remainingTime || '' == $remainingTime) {
         $remainingTime = -1;
     }
     return new Response($remainingTime);
 }
Example #20
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = $session->get('client/id');
     $loggedInUserId = $session->get('user/id');
     $stepPropertyId = $request->get('id');
     $stepProperty = $this->getRepository(Workflow::class)->getStepPropertyById($stepPropertyId);
     $step = $this->getRepository(Workflow::class)->getStepById($stepProperty['workflow_step_id']);
     $stepId = $step['id'];
     $workflowId = $step['workflow_id'];
     $workflowMetadata = $this->getRepository(Workflow::class)->getMetaDataById($workflowId);
     $allProperties = $this->getRepository(Workflow::class)->getSystemWorkflowProperties();
     $emptyValue = false;
     $duplicateKey = false;
     $value = $stepProperty['value'];
     if ($request->request->has('edit_property')) {
         $keyId = Util::cleanRegularInputField($request->request->get('key'));
         $value = Util::cleanRegularInputField($request->request->get('value'));
         if (empty($value)) {
             $emptyValue = true;
         }
         if (!$emptyValue) {
             $duplicateKey = $this->getRepository(Workflow::class)->getStepKeyByStepIdAndKeyId($stepId, $keyId, $stepProperty['id']);
             if (!$duplicateKey) {
                 $currentDate = Util::getServerCurrentDateTime();
                 $this->getRepository(Workflow::class)->updateStepPropertyById($stepPropertyId, $keyId, $value, $currentDate);
                 $this->getLogger()->addInfo('UPDATE Yongo Workflow Step Property', $this->getLoggerContext());
                 return new RedirectResponse('/yongo/administration/workflow/view-step-properties/' . $stepId);
             }
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Workflow Step Property';
     return $this->render(__DIR__ . '/../../../../../Resources/views/administration/workflow/step/property/Edit.php', get_defined_vars());
 }
Example #21
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'agile';
     $projects = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($session->get('client/id'), $session->get('user/id'), Permission::PERM_BROWSE_PROJECTS);
     $noProjectSelected = false;
     $emptyName = false;
     if ($request->request->has('confirm_new_board')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $projectsInBoard = $request->request->get('project');
         if (!$projectsInBoard) {
             $noProjectSelected = true;
         }
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName && !$noProjectSelected) {
             $definitionData = 'project=' . implode('|', $projectsInBoard);
             $date = Util::getServerCurrentDateTime();
             $filterId = $this->getRepository(IssueFilter::class)->save($session->get('user/id'), 'Filter for ' . $name, 'Filter created automatically for agile board ' . $name, $definitionData, $date);
             $board = new Board($session->get('client/id'), $filterId, $name, $description, $projectsInBoard);
             $currentDate = Util::getServerCurrentDateTime();
             $boardId = $board->save($session->get('user/id'), $currentDate);
             $board->addDefaultColumnData($session->get('client/id'), $boardId);
             $this->getLogger()->addInfo('ADD Cheetah Agile Board ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/agile/boards');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_CHEETAH_NAME . ' / Create Board';
     return $this->render(__DIR__ . '/../../Resources/views/board/Add.php', get_defined_vars());
 }
Example #22
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $loggedInUserId = $session->get('user/id');
     $issueId = $request->request->get('issue_id');
     $attachIdsToBeKept = $request->request->get('attach_ids');
     $comment = Util::cleanRegularInputField($request->request->get('comment'));
     if (!is_array($attachIdsToBeKept)) {
         $attachIdsToBeKept = array();
     }
     Util::manageModalAttachments($issueId, $session->get('user/id'), $attachIdsToBeKept);
     if (!empty($comment)) {
         $currentDate = Util::getServerCurrentDateTime();
         $this->getRepository(IssueComment::class)->add($issueId, $session->get('user/id'), $comment, $currentDate);
     }
     // send email notification
     $issueQueryParameters = array('issue_id' => $issueId);
     $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $loggedInUserId);
     $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']);
     $issueEventData = array('user_id' => $loggedInUserId, 'attachmentIds' => UbirimiContainer::get()['session']->get('added_attachments_in_screen'), 'comment' => $comment);
     $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData);
     UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_ADD_ATTACHMENT, $issueEvent);
     UbirimiContainer::get()['session']->remove('added_attachments_in_screen');
     return new Response('');
 }
Example #23
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $issueTypes = FieldType::getAll($session->get('client/id'));
     $projects = $this->getRepository(YongoProject::class)->getByClientId($session->get('client/id'));
     $fieldTypeCode = $request->get('type');
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('finish_custom_field')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $issueType = $request->request->get('issue_type');
         $project = $request->request->get('project');
         $fieldType = $this->getRepository(FieldType::class)->getByCode($fieldTypeCode);
         $fieldTypeId = $fieldType['id'];
         if (empty($name)) {
             $emptyName = true;
         } else {
             // check for duplicate name
             $duplicateField = $this->getRepository(CustomField::class)->getByNameAndType($session->get('client/id'), $name, $fieldTypeId);
             if ($duplicateField) {
                 $duplicateName = true;
             }
         }
         if (!$emptyName && !$duplicateName) {
             $date = Util::getServerCurrentDateTime();
             $fieldId = CustomField::create($session->get('client/id'), $fieldTypeCode, $name, $description, $issueType, $project, $date);
             $this->getLogger()->addInfo('ADD Yongo Custom Field ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/custom-field/edit-field-screen/' . $fieldId);
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Custom Field Data';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/field/AddData.php', get_defined_vars());
 }
Example #24
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('add_project_category')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         } else {
             $data = $this->getRepository(ProjectCategory::class)->getByName($name, null, $session->get('client/id'));
             if ($data) {
                 $duplicateName = true;
             }
         }
         if (!$emptyName && !$duplicateName) {
             $projectCategory = new ProjectCategory($session->get('client/id'), $name, $description);
             $currentDate = Util::getServerCurrentDateTime();
             $projectCategory->save($currentDate);
             $this->getLogger()->addInfo('ADD Yongo Project Category ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/project/categories');
         }
     }
     $menuSelectedCategory = 'project';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Project Category';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/project/category/Add.php', get_defined_vars());
 }
Example #25
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'system';
     $emptyName = false;
     $eventId = $request->get('id');
     $event = $this->getRepository(IssueEvent::class)->getById($eventId);
     if ($event['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     if ($request->request->has('edit_event')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueEvent::class)->updateById($eventId, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Event ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/events');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Event';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/event/edit.php', get_defined_vars());
 }
Example #26
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $workflowExists = false;
     $workflowIssueTypeSchemes = $this->getRepository(IssueTypeScheme::class)->getByClientId($session->get('client/id'), 'workflow');
     if ($request->request->has('new_workflow')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $duplicateWorkflow = $this->getRepository(Workflow::class)->getByClientIdAndName($session->get('client/id'), mb_strtolower($name));
         if ($duplicateWorkflow) {
             $workflowExists = true;
         }
         if (!$emptyName && !$workflowExists) {
             $workflowIssueTypeSchemeId = $request->request->get('workflow_issue_type_scheme');
             $currentDate = $date = Util::getServerCurrentDateTime();
             $workflowId = $this->getRepository(Workflow::class)->createNewMetaData($session->get('client/id'), $workflowIssueTypeSchemeId, $name, $description, $currentDate);
             $this->getRepository(Workflow::class)->createInitialData($session->get('client/id'), $workflowId);
             $this->getLogger()->addInfo('ADD Yongo Workflow ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/workflows');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Workflow';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/workflow/Add.php', get_defined_vars());
 }
Example #27
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $tagId = $request->get('id');
     $tag = $this->getRepository(Tag::class)->getById($tagId);
     if ($tag['user_id'] != $session->get('user/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $tagExists = false;
     if ($request->request->has('edit_tag')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         // check for duplication
         $tagDuplicate = $this->getRepository(Tag::class)->getByNameAndUserId($session->get('user/id'), mb_strtolower($name), $tagId);
         if ($tagDuplicate) {
             $tagExists = true;
         }
         if (!$tagExists && !$emptyName) {
             $date = Util::getServerCurrentDateTime();
             $this->getRepository(Tag::class)->updateById($tagId, $name, $description, $date);
             $this->getLogger()->addInfo('UPDATE NOTEBOOK tag ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/quick-notes/tag/all');
         }
     }
     $menuSelectedCategory = 'tags';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_QUICK_NOTES_NAME . ' / Notebook: ' . $tag['name'] . ' / Update';
     return $this->render(__DIR__ . '/../../Resources/views/Tag/Edit.php', get_defined_vars());
 }
Example #28
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $duplicateName = false;
     $name = Util::cleanRegularInputField($request->request->get('name'));
     $description = Util::cleanRegularInputField($request->request->get('description'));
     if (empty($name)) {
         $emptyName = true;
     }
     $notebookSameName = $this->getRepository(Notebook::class)->getByName($session->get('user/id'), $name);
     if ($notebookSameName) {
         $duplicateName = true;
     }
     if (!$emptyName && !$duplicateName) {
         $currentDate = Util::getServerCurrentDateTime();
         $defaultFlag = 0;
         // get the default notebook
         $defaultNotebook = $this->getRepository(Notebook::class)->getDefaultByUserId($session->get('user/id'));
         if (!$defaultNotebook) {
             $defaultFlag = 1;
         }
         $notebookId = $this->getRepository(Notebook::class)->save($session->get('user/id'), $name, $description, $defaultFlag, $currentDate);
         $this->getLogger()->addInfo('ADD QUICK NOTES notebook ' . $name, $this->getLoggerContext());
     }
     return new Response('');
 }
Example #29
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $projectId = $request->get('id');
     $project = $this->getRepository(YongoProject::class)->getById($projectId);
     $emptyName = false;
     $alreadyExists = false;
     if ($request->request->has('confirm_new_release')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $releasesDuplicate = $this->getRepository(YongoProject::class)->getVersionByName($projectId, $name);
         if ($releasesDuplicate) {
             $alreadyExists = true;
         }
         if (!$emptyName && !$alreadyExists) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(YongoProject::class)->addVersion($projectId, $name, $description, $currentDate);
             $this->getLogger()->addInfo('ADD Project Version ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/project/versions/' . $projectId);
         }
     }
     $menuSelectedCategory = 'project';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Project Version';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/project/version/Add.php', get_defined_vars());
 }
Example #30
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $Id = $request->get('id');
     $group = $this->getRepository(UbirimiGroup::class)->getMetadataById($Id);
     if ($group['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $name = $group['name'];
     $description = $group['description'];
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('update_group')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $groupAlreadyExists = $this->getRepository(UbirimiGroup::class)->getByNameAndProductId($session->get('client/id'), SystemProduct::SYS_PRODUCT_YONGO, mb_strtolower($name), $Id);
             if ($groupAlreadyExists) {
                 $duplicateName = true;
             }
         }
         if (!$emptyName && !$duplicateName) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(UbirimiGroup::class)->updateById($Id, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Group ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/groups');
         }
     }
     $menuSelectedCategory = 'user';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Group';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/group/Edit.php', get_defined_vars());
 }