Exemplo n.º 1
0
 protected function Form_Create()
 {
     parent::Form_Create();
     $objIssue = Issue::Load(QApplication::PathInfo(0));
     if (!$objIssue) {
         $objIssue = new Issue();
         $objIssue->IssuePriorityTypeId = IssuePriorityType::Standard;
         $objIssue->IssueStatusTypeId = IssueStatusType::NewIssue;
         $objIssue->PostedByPerson = QApplication::$Person;
         $this->blnEditMode = false;
         $this->strPageTitle .= 'Create New';
         $this->strHeadline = 'Report a New Bug or Issue';
     } else {
         if (!$objIssue->IsEditableForPerson(QApplication::$Person)) {
             QApplication::RedirectToLogin();
         }
         $this->blnEditMode = true;
         $this->strPageTitle .= 'Edit Issue #' . $objIssue->Id;
         $this->strHeadline = 'Edit Issue #' . $objIssue->Id;
     }
     $this->mctIssue = new IssueMetaControl($this, $objIssue);
     $this->txtTitle = $this->mctIssue->txtTitle_Create();
     $this->txtTitle->Required = true;
     $this->txtExampleCode = $this->mctIssue->txtExampleCode_Create();
     $this->txtExampleTemplate = $this->mctIssue->txtExampleTemplate_Create();
     $this->txtExampleData = $this->mctIssue->txtExampleData_Create();
     $this->txtExpectedOutput = $this->mctIssue->txtExpectedOutput_Create();
     $this->txtActualOutput = $this->mctIssue->txtActualOutput_Create();
     $this->lstPriority = $this->mctIssue->lstIssuePriorityType_Create();
     $this->lstStatus = $this->mctIssue->lstIssueStatusType_Create();
     $this->lstResolution = $this->mctIssue->lstIssueResolutionType_Create();
     $this->txtAssignedTo = new QTextBox($this);
     $this->txtAssignedTo->ReadOnly = true;
     $this->txtDueDate = new QDateTimeTextBox($this);
     $this->calDueDate = new QCalendar($this->txtDueDate, $this->txtDueDate);
     $this->txtDueDate->Text = $this->mctIssue->Issue->DueDate ? $this->mctIssue->Issue->DueDate->__toString() : null;
     $this->dlgAssignedTo = new PersonSelectorDialog($this, 'dlgAssignedTo_Select');
     $this->txtAssignedTo->AddAction(new QClickEvent(), new QShowDialogBox($this->dlgAssignedTo));
     $this->txtAssignedTo->AddAction(new QClickEvent(), new QFocusControlAction($this->dlgAssignedTo->txtMemberSearch));
     $this->lstStatus->AddAction(new QChangeEvent(), new QAjaxAction('RefreshStatuses'));
     foreach (IssueField::LoadArrayByActiveFlag(true, QQ::OrderBy(QQN::IssueField()->OrderNumber)) as $objIssueField) {
         $this->lstField_Setup($objIssueField);
     }
     $this->txtLongDescription = new QTextBox($this);
     $this->txtLongDescription->Visible = !$this->blnEditMode;
     $this->txtLongDescription->Required = !$this->blnEditMode;
     $this->txtLongDescription->TextMode = QTextMode::MultiLine;
     $this->btnOkay = new QButton($this);
     $this->btnOkay->CausesValidation = true;
     $this->btnOkay->Text = $this->blnEditMode ? 'Update Issue' : 'Save New Issue';
     $this->btnCancel = new QLinkButton($this);
     $this->btnCancel->Text = 'Cancel';
     $this->btnOkay->AddAction(new QClickEvent(), new QToggleEnableAction($this->btnOkay));
     $this->btnOkay->AddAction(new QClickEvent(), new QAjaxAction('btnOkay_Click'));
     $this->btnCancel->AddAction(new QClickEvent(), new QAjaxAction('btnCancel_Click'));
     $this->btnCancel->AddAction(new QClickEvent(), new QTerminateAction());
     if ($objIssue->IsAdminableForPerson(QApplication::$Person)) {
         $this->RefreshStatuses();
     } else {
         $this->txtAssignedTo->Visible = false;
         $this->txtDueDate->Visible = false;
         $this->lstStatus->Visible = false;
         $this->lstResolution->Visible = false;
     }
     $this->txtTitle->Focus();
 }