Esempio n. 1
0
 protected function Form_Create()
 {
     parent::Form_Create();
     $this->objPackage = Package::LoadByToken(QApplication::PathInfo(0));
     if (!$this->objPackage) {
         QApplication::Redirect('/qpm/');
     }
     $this->strPageTitle .= $this->objPackage->Name;
     $this->dtgContributions = new PackageContributionDataGrid($this);
     $this->dtgContributions->SetDataBinder('dtgContributions_Bind');
     $this->dtgContributions->AlternateRowStyle->CssClass = 'alternate';
     $this->dtgContributions->MetaAddColumn(QQN::PackageContribution()->Person->Username, 'Name=QPM Path for Version', 'Html=<?= $_FORM->RenderPath($_ITEM); ?>', 'Width=350px', 'VerticalAlign=top', 'FontNames=Monaco, Courier, Courier New,Monospaced', 'HtmlEntities=false');
     $this->dtgContributions->MetaAddColumn(QQN::PackageContribution()->CurrentPackageVersion->Notes, 'Name=Version Notes', 'Html=<?= $_FORM->RenderNotes($_ITEM); ?>', 'Width=400px', 'VerticalAlign=top', 'CssClass=small', 'HtmlEntities=false');
     $this->dtgContributions->MetaAddColumn('CurrentPostDate', 'Name=Posted', 'Width=100px', 'VerticalAlign=top');
     $this->dtgContributions->MetaAddColumn(QQN::PackageContribution()->Person->DisplayName, 'Name=By', 'Html=<?= $_FORM->RenderPostedBy($_ITEM); ?>', 'HtmlEntities=false', 'Width=100px', 'CssClass=reverseLink', 'VerticalAlign=top');
     $this->dtgContributions->SortColumnIndex = 2;
     $this->dtgContributions->SortDirection = 1;
     $this->dtgContributions->Paginator = new QPaginator($this->dtgContributions);
     if ($this->objPackage->IsEditableForPerson(QApplication::$Person)) {
         $this->btnEdit = new RoundedLinkButton($this);
         $this->btnEdit->CssClass = 'searchOption';
         $this->btnEdit->ToolTip = 'Edit This package';
         $this->btnEdit->LinkUrl = '/qpm/edit.php/' . $this->objPackage->Token;
     }
     // Setup messages panel
     if ($this->objPackage->PackageCategory->Token != 'issues') {
         $this->pnlMessages = new MessagesPanel($this);
         $this->pnlMessages->SelectTopic($this->objPackage->TopicLink->GetTopic());
         $this->pnlMessages->lblTopicInfo_SetTemplate(__INCLUDES__ . '/messages/lblTopicInfoForPackage.tpl.php');
         $this->pnlMessages->btnRespond1->Text = 'Post Comment';
         $this->pnlMessages->btnRespond2->Text = 'Post Comment';
         $this->pnlMessages->strAdditionalCssClass = 'topicForPackage';
         if (array_key_exists('lastpage', $_GET)) {
             $this->pnlMessages->SetPageNumber(QPaginatedControl::LastPage);
         }
     } else {
         $strTokenParts = explode('_', $this->objPackage->Token);
         if (count($strTokenParts) == 2) {
             $strIssueNumber = $strTokenParts[1];
         } else {
             $strIssueNumber = null;
         }
         $this->pnlMessages = new QPanel($this);
         $this->pnlMessages->CssClass = 'topic topicForPackage';
         $this->pnlMessages->Text = '<h1>Comments</h1>';
         $this->pnlMessages->Text .= '<br/>Comments for this issue-related QPM package have been disabled on this screen.  To view, post and edit comments, ';
         $this->pnlMessages->Text .= 'please do so on the <a href="/issues/view.php/' . $strIssueNumber . '">issue page</a>, itself.';
     }
 }
Esempio n. 2
0
 /**
  * Looks up a package version count given the PackageName and User.
  * This will throw an exception if the Package or Username does not exist
  * @param string $strPackageName
  * @param string $strUsername
  * @return integer
  */
 public function GetPackageVersionCount($strPackageName, $strUsername)
 {
     $objPackage = Package::LoadByToken(trim(strtolower($strPackageName)));
     if (!$objPackage) {
         throw new Exception('Package does not exist');
     }
     $objPerson = Person::LoadByUsername(trim(strtolower($strUsername)));
     if (!$objPerson) {
         throw new Exception('Person does not exist');
     }
     $objPackageContribution = PackageContribution::LoadByPackageIdPersonId($objPackage->Id, $objPerson->Id);
     if (!$objPackageContribution) {
         return 0;
     }
     return $objPackageContribution->CountPackageVersions();
 }
Esempio n. 3
0
 public function Form_Validate($blnToReturn = true)
 {
     $this->txtToken->Text = Package::SanitizeForToken($this->txtToken->Text);
     if ($this->txtToken->Text == 'manifest') {
         $this->txtToken->Warning = 'Invalid QPM package name: "manifest" cannot be used';
         $blnToReturn = false;
     } else {
         if (substr($this->txtToken->Text, 0, 6) == 'issue_') {
             $this->txtToken->Warning = 'Invalid QPM package name: cannot begin with "issue_"';
             $blnToReturn = false;
         } else {
             $objPackage = Package::LoadByToken($this->txtToken->Text);
             if ($objPackage && $objPackage->Id != $this->mctPackage->Package->Id) {
                 $this->txtToken->Warning = 'QPM package name already exists';
                 $blnToReturn = false;
             }
         }
     }
     return parent::Form_Validate($blnToReturn);
 }
Esempio n. 4
0
    $strFirstMessageText = QDataGen::GenerateContent(rand(1, 5));
    $objPerson = Person::Load(rand(1, $intMaxPersonId));
    $dttDateTime = QDataGen::GenerateDateTime($dttStartDate, QDateTime::Now());
    $objTopic = $objForum->PostTopic($strName, $strFirstMessageText, $objPerson, $dttDateTime);
    $objForumTopicArray[] = $objTopic;
}
//////////////////////
// Qcodo Package Manager
//////////////////////
$objPackageCategories = PackageCategory::QueryArray(QQ::NotEqual(QQN::PackageCategory()->Token, 'issues'));
while (QDataGen::DisplayWhileTask('Generating QPM Packages...', GENERATE_QPM)) {
    $objPackage = new Package();
    $objPackage->PackageCategory = QDataGen::GenerateFromArray($objPackageCategories);
    $objPackage->Name = QDataGen::GenerateTitle(1, 3);
    $objPackage->Token = Package::SanitizeForToken($objPackage->Name);
    while (Package::LoadByToken($objPackage->Token)) {
        $objPackage->Name = QDataGen::GenerateTitle(1, 3);
        $objPackage->Token = Package::SanitizeForToken($objPackage->Name);
    }
    $objPackage->Description = QDataGen::GenerateContent(rand(1, 3), 20, 80);
    $objPackage->Save();
    $objPackage->CreateTopicAndTopicLink(Person::Load(rand(1, $intMaxPersonId)));
    $intContributionCount = rand(1, 10);
    for ($intContribution = 0; $intContribution < $intContributionCount; $intContribution++) {
        while (PackageContribution::LoadByPackageIdPersonId($objPackage->Id, $objPerson->Id)) {
            $objPerson = Person::Load(rand(1, $intMaxPersonId));
        }
        $intVersionCount = rand(1, 4);
        $dttEndRange = QDataGen::GenerateDateTime($dttStartDate, QDateTime::Now());
        $dttEndRange = QDataGen::GenerateDateTime($dttStartDate, $dttEndRange);
        $dttEndRange = QDataGen::GenerateDateTime($dttStartDate, $dttEndRange);