From b440830cb71a0c11eff5a1dd816ed55b49bf1bd6 Mon Sep 17 00:00:00 2001 From: Bob Trahan Date: Wed, 3 Oct 2012 16:21:17 -0700 Subject: [PATCH] Update ponder answer view to use newer fangled abstractions Summary: also did a wee bit o' formatting stuff while I was in there. Test Plan: it looks... well, it looks like its using the new UI component and all the information is there! Reviewers: epriestley, pieter CC: aran, Korvin Maniphest Tasks: T1845 Differential Revision: https://secure.phabricator.com/D3611 --- .../ponder/view/PonderAnswerSummaryView.php | 93 ------------------- .../ponder/view/PonderUserProfileView.php | 68 ++++++++------ 2 files changed, 42 insertions(+), 119 deletions(-) delete mode 100644 src/applications/ponder/view/PonderAnswerSummaryView.php diff --git a/src/applications/ponder/view/PonderAnswerSummaryView.php b/src/applications/ponder/view/PonderAnswerSummaryView.php deleted file mode 100644 index 5e7989e449..0000000000 --- a/src/applications/ponder/view/PonderAnswerSummaryView.php +++ /dev/null @@ -1,93 +0,0 @@ -answer = $answer; - return $this; - } - - public function setHandles($handles) { - $this->handles = $handles; - return $this; - } - - public function setUser(PhabricatorUser $user) { - $this->user = $user; - return $this; - } - - private static function abbreviate($w) { - return phutil_utf8_shorten($w, 60); - } - - public function render() { - require_celerity_resource('ponder-feed-view-css'); - - $user = $this->user; - $answer = $this->answer; - $question = $answer->getQuestion(); - $author_phid = $question->getAuthorPHID(); - $handles = $this->handles; - - $votecount = - '
'. - phutil_escape_html($answer->getVoteCount()). - '
'. - 'votes'. - '
'. - '
'; - - $title = - '

'. - phutil_render_tag( - 'a', - array( - "href" => id(new PhutilURI('/Q' . $question->getID())) - ->setFragment('A' . $answer->getID()) - ), - phutil_escape_html('A' . $answer->getID() . ' ' . - self::abbreviate($answer->getContent()) - ) - ). - '

'; - - $rhs = - '
'. - $title. - ''. - '
'; - - $summary = - '
'. - $votecount. - $rhs. - '
'; - - return $summary; - } -} diff --git a/src/applications/ponder/view/PonderUserProfileView.php b/src/applications/ponder/view/PonderUserProfileView.php index fac3b86871..8a611b36d4 100644 --- a/src/applications/ponder/view/PonderUserProfileView.php +++ b/src/applications/ponder/view/PonderUserProfileView.php @@ -65,45 +65,61 @@ public function render() { require_celerity_resource('ponder-core-view-css'); require_celerity_resource('ponder-feed-view-css'); - $user = $this->user; - $aoffset = $this->answeroffset; - $answers = $this->answers; - $handles = $this->handles; - $uri = $this->uri; - $aparam = $this->aparam; + $user = $this->user; + $aoffset = $this->answeroffset; + $answers = $this->answers; + $handles = $this->handles; + $uri = $this->uri; + $aparam = $this->aparam; $pagesize = $this->pagesize; - // display answers - $answer_panel = id(new AphrontPanelView()) - ->setHeader("Your Answers") - ->addClass("ponder-panel") - ->appendChild( - phutil_render_tag( - 'a', - array('id' => 'answers'), - "") - ); - $apagebuttons = id(new AphrontPagerView()) ->setPageSize($pagesize) ->setOffset($aoffset) ->setURI( $uri - ->setFragment("answers"), + ->setFragment('answers'), $aparam); - $answers = $apagebuttons->sliceResults($answers); + $view = new PhabricatorObjectItemListView(); + $view->setNoDataString(pht('No matching answers.')); + foreach ($answers as $answer) { - $cur = id(new PonderAnswerSummaryView()) - ->setUser($user) - ->setAnswer($answer) - ->setHandles($handles); - $answer_panel->appendChild($cur); + $question = $answer->getQuestion(); + $author_phid = $question->getAuthorPHID(); + + $item = new PhabricatorObjectItemView(); + $href = id(new PhutilURI('/Q' . $question->getID())) + ->setFragment('A' . $answer->getID()); + $item->setHeader( + 'A'.$answer->getID().' '.self::abbreviate($answer->getContent()) + ); + $item->setHref($href); + + $item->addDetail( + pht('Votes'), + $answer->getVoteCount() + ); + + $item->addDetail( + pht('Question'), + self::abbreviate($question->getTitle()) + ); + + $item->addAttribute( + pht('Created %s', phabricator_date($answer->getDateCreated(), $user)) + ); + + $view->addItem($item); } - $answer_panel->appendChild($apagebuttons); + $view->appendChild($apagebuttons); + + return $view->render(); + } - return $answer_panel->render(); + private function abbreviate($w) { + return phutil_utf8_shorten($w, 60); } }