1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 01:08:50 +02:00

Clean up initialization of Differential Show More Behavior in Maniphest

Summary:
add a static variable to the method and use it so we don't init more
than once!

Test Plan:
add a "phlog" and noted only init'd one time.   verified "show more"
links worked correctly.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, epriestley

Maniphest Tasks: T666

Differential Revision: https://secure.phabricator.com/D1553
This commit is contained in:
Bob Trahan 2012-02-02 15:21:30 -08:00
parent 2ff36b7cad
commit e15b3fc6f3
8 changed files with 68 additions and 25 deletions

View file

@ -395,6 +395,7 @@ phutil_register_library_map(array(
'ManiphestTask' => 'applications/maniphest/storage/task',
'ManiphestTaskAuxiliaryStorage' => 'applications/maniphest/storage/auxiliary',
'ManiphestTaskDescriptionChangeController' => 'applications/maniphest/controller/descriptionchange',
'ManiphestTaskDescriptionDiffController' => 'applications/maniphest/controller/descriptiondiff',
'ManiphestTaskDescriptionPreviewController' => 'applications/maniphest/controller/descriptionpreview',
'ManiphestTaskDetailController' => 'applications/maniphest/controller/taskdetail',
'ManiphestTaskEditController' => 'applications/maniphest/controller/taskedit',
@ -1131,6 +1132,7 @@ phutil_register_library_map(array(
'ManiphestTask' => 'ManiphestDAO',
'ManiphestTaskAuxiliaryStorage' => 'ManiphestDAO',
'ManiphestTaskDescriptionChangeController' => 'ManiphestController',
'ManiphestTaskDescriptionDiffController' => 'ManiphestTaskDescriptionChangeController',
'ManiphestTaskDescriptionPreviewController' => 'ManiphestController',
'ManiphestTaskDetailController' => 'ManiphestController',
'ManiphestTaskEditController' => 'ManiphestController',

View file

@ -167,6 +167,8 @@ class AphrontDefaultApplicationConfiguration
'edit/(?P<id>\d+)/$' => 'ManiphestTaskEditController',
'descriptionchange/(?P<id>\d+)/$' =>
'ManiphestTaskDescriptionChangeController',
'descriptiondiff/$' =>
'ManiphestTaskDescriptionDiffController',
'descriptionpreview/$' =>
'ManiphestTaskDescriptionPreviewController',
),

View file

@ -1,7 +1,7 @@
<?php
/*
* Copyright 2011 Facebook, Inc.
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -23,7 +23,7 @@ class ManiphestTaskDescriptionChangeController extends ManiphestController {
private $transactionID;
private function setTransactionID($transaction_id) {
protected function setTransactionID($transaction_id) {
$this->transactionID = $transaction_id;
return $this;
}
@ -37,17 +37,9 @@ class ManiphestTaskDescriptionChangeController extends ManiphestController {
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
// this means we're using "show more" on a diff of a description and
// should thus use the rendering reference to identify the transaction
$ref = $request->getStr('ref');
if ($ref) {
$this->setTransactionID($ref);
}
$transaction_id = $this->getTransactionID();
$transaction = id(new ManiphestTransaction())->load($transaction_id);
if (!$transaction) {

View file

@ -0,0 +1,29 @@
<?php
/*
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @group maniphest
*/
final class ManiphestTaskDescriptionDiffController
extends ManiphestTaskDescriptionChangeController {
public function willProcessRequest(array $data) {
$ref = $this->getRequest()->getStr('ref');
$this->setTransactionID($ref);
}
}

View file

@ -0,0 +1,12 @@
<?php
/**
* This file is automatically generated. Lint this module to rebuild it.
* @generated
*/
phutil_require_module('phabricator', 'applications/maniphest/controller/descriptionchange');
phutil_require_source('ManiphestTaskDescriptionDiffController.php');

View file

@ -563,6 +563,7 @@ class ManiphestTransactionDetailView extends ManiphestView {
switch ($transaction->getTransactionType()) {
case ManiphestTransactionType::TYPE_DESCRIPTION:
$id = $transaction->getID();
$old_text = wordwrap($transaction->getOldValue(), 80);
$new_text = wordwrap($transaction->getNewValue(), 80);
@ -593,20 +594,6 @@ class ManiphestTransactionDetailView extends ManiphestView {
Javelin::initBehavior('maniphest-transaction-expand');
switch ($transaction->getTransactionType()) {
case ManiphestTransactionType::TYPE_DESCRIPTION:
require_celerity_resource('differential-changeset-view-css');
require_celerity_resource('syntax-highlighting-css');
$whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL;
Javelin::initBehavior('differential-show-more', array(
'uri' => '/maniphest/task/descriptionchange/'.$id.'/',
'whitespace' => $whitespace_mode,
));
break;
default:
break;
}
return javelin_render_tag(
'a',
array(

View file

@ -1,7 +1,7 @@
<?php
/*
* Copyright 2011 Facebook, Inc.
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -60,7 +60,12 @@ class ManiphestTransactionListView extends ManiphestView {
$last = null;
$group = array();
$groups = array();
$has_description_transaction = false;
foreach ($this->transactions as $transaction) {
if ($transaction->getTransactionType() ==
ManiphestTransactionType::TYPE_DESCRIPTION) {
$has_description_transaction = true;
}
if ($last === null) {
$last = $transaction;
$group[] = $transaction;
@ -80,6 +85,16 @@ class ManiphestTransactionListView extends ManiphestView {
$groups[] = $group;
}
if ($has_description_transaction) {
require_celerity_resource('differential-changeset-view-css');
require_celerity_resource('syntax-highlighting-css');
$whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL;
Javelin::initBehavior('differential-show-more', array(
'uri' => '/maniphest/task/descriptiondiff/',
'whitespace' => $whitespace_mode,
));
}
$sequence = 1;
foreach ($groups as $group) {
$view = new ManiphestTransactionDetailView();

View file

@ -6,8 +6,12 @@
phutil_require_module('phabricator', 'applications/differential/parser/changeset');
phutil_require_module('phabricator', 'applications/maniphest/constants/transactiontype');
phutil_require_module('phabricator', 'applications/maniphest/view/base');
phutil_require_module('phabricator', 'applications/maniphest/view/transactiondetail');
phutil_require_module('phabricator', 'infrastructure/celerity/api');
phutil_require_module('phabricator', 'infrastructure/javelin/api');
phutil_require_source('ManiphestTransactionListView.php');