Differential D9294 Diff 22062 src/applications/differential/render/DifferentialChangesetHTMLRenderer.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/render/DifferentialChangesetHTMLRenderer.php
<?php | <?php | ||||
abstract class DifferentialChangesetHTMLRenderer | abstract class DifferentialChangesetHTMLRenderer | ||||
extends DifferentialChangesetRenderer { | extends DifferentialChangesetRenderer { | ||||
protected function renderChangeTypeHeader($force) { | protected function renderChangeTypeHeader($force) { | ||||
$changeset = $this->getChangeset(); | $changeset = $this->getChangeset(); | ||||
$change = $changeset->getChangeType(); | $change = $changeset->getChangeType(); | ||||
$file = $changeset->getFileType(); | $file = $changeset->getFileType(); | ||||
$message = null; | $messages = array(); | ||||
if ($change == DifferentialChangeType::TYPE_CHANGE && | |||||
$file == DifferentialChangeType::FILE_TEXT) { | |||||
if ($force) { | |||||
// We have to force something to render because there were no changes | |||||
// of other kinds. | |||||
$message = pht('This file was not modified.'); | |||||
} else { | |||||
// Default case of changes to a text file, no metadata. | |||||
return null; | |||||
} | |||||
} else { | |||||
$none = hsprintf(''); | $none = hsprintf(''); | ||||
switch ($change) { | switch ($change) { | ||||
case DifferentialChangeType::TYPE_ADD: | case DifferentialChangeType::TYPE_ADD: | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was <strong>added</strong>.', $none); | $messages[] = pht( | ||||
'This file was <strong>added</strong>.', | |||||
$none); | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was <strong>added</strong>.', $none); | $messages[] = pht( | ||||
'This image was <strong>added</strong>.', | |||||
$none); | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This directory was <strong>added</strong>.', | 'This directory was <strong>added</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This binary file was <strong>added</strong>.', | 'This binary file was <strong>added</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This symlink was <strong>added</strong>.', $none); | $messages[] = pht( | ||||
'This symlink was <strong>added</strong>.', | |||||
$none); | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht( | $messages[] = pht( | ||||
'This submodule was <strong>added</strong>.', | 'This submodule was <strong>added</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_DELETE: | case DifferentialChangeType::TYPE_DELETE: | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was <strong>deleted</strong>.', $none); | $messages[] = pht( | ||||
'This file was <strong>deleted</strong>.', | |||||
$none); | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was <strong>deleted</strong>.', $none); | $messages[] = pht( | ||||
'This image was <strong>deleted</strong>.', | |||||
$none); | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This directory was <strong>deleted</strong>.', | 'This directory was <strong>deleted</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This binary file was <strong>deleted</strong>.', | 'This binary file was <strong>deleted</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht( | $messages[] = pht( | ||||
'This symlink was <strong>deleted</strong>.', | 'This symlink was <strong>deleted</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht( | $messages[] = pht( | ||||
'This submodule was <strong>deleted</strong>.', | 'This submodule was <strong>deleted</strong>.', | ||||
$none); | $none); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_MOVE_HERE: | case DifferentialChangeType::TYPE_MOVE_HERE: | ||||
$from = phutil_tag('strong', array(), $changeset->getOldFile()); | $from = phutil_tag('strong', array(), $changeset->getOldFile()); | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was moved from %s.', $from); | $messages[] = pht('This file was moved from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was moved from %s.', $from); | $messages[] = pht('This image was moved from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht('This directory was moved from %s.', $from); | $messages[] = pht('This directory was moved from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht('This binary file was moved from %s.', $from); | $messages[] = pht('This binary file was moved from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This symlink was moved from %s.', $from); | $messages[] = pht('This symlink was moved from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht('This submodule was moved from %s.', $from); | $messages[] = pht('This submodule was moved from %s.', $from); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_COPY_HERE: | case DifferentialChangeType::TYPE_COPY_HERE: | ||||
$from = phutil_tag('strong', array(), $changeset->getOldFile()); | $from = phutil_tag('strong', array(), $changeset->getOldFile()); | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was copied from %s.', $from); | $messages[] = pht('This file was copied from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was copied from %s.', $from); | $messages[] = pht('This image was copied from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht('This directory was copied from %s.', $from); | $messages[] = pht('This directory was copied from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht('This binary file was copied from %s.', $from); | $messages[] = pht('This binary file was copied from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This symlink was copied from %s.', $from); | $messages[] = pht('This symlink was copied from %s.', $from); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht('This submodule was copied from %s.', $from); | $messages[] = pht('This submodule was copied from %s.', $from); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_MOVE_AWAY: | case DifferentialChangeType::TYPE_MOVE_AWAY: | ||||
$paths = phutil_tag( | $paths = phutil_tag( | ||||
'strong', | 'strong', | ||||
array(), | array(), | ||||
implode(', ', $changeset->getAwayPaths())); | implode(', ', $changeset->getAwayPaths())); | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was moved to %s.', $paths); | $messages[] = pht('This file was moved to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was moved to %s.', $paths); | $messages[] = pht('This image was moved to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht('This directory was moved to %s.', $paths); | $messages[] = pht('This directory was moved to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht('This binary file was moved to %s.', $paths); | $messages[] = pht('This binary file was moved to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This symlink was moved to %s.', $paths); | $messages[] = pht('This symlink was moved to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht('This submodule was moved to %s.', $paths); | $messages[] = pht('This submodule was moved to %s.', $paths); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_COPY_AWAY: | case DifferentialChangeType::TYPE_COPY_AWAY: | ||||
$paths = phutil_tag( | $paths = phutil_tag( | ||||
'strong', | 'strong', | ||||
array(), | array(), | ||||
implode(', ', $changeset->getAwayPaths())); | implode(', ', $changeset->getAwayPaths())); | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This file was copied to %s.', $paths); | $messages[] = pht('This file was copied to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This image was copied to %s.', $paths); | $messages[] = pht('This image was copied to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht('This directory was copied to %s.', $paths); | $messages[] = pht('This directory was copied to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht('This binary file was copied to %s.', $paths); | $messages[] = pht('This binary file was copied to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This symlink was copied to %s.', $paths); | $messages[] = pht('This symlink was copied to %s.', $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht('This submodule was copied to %s.', $paths); | $messages[] = pht('This submodule was copied to %s.', $paths); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case DifferentialChangeType::TYPE_MULTICOPY: | case DifferentialChangeType::TYPE_MULTICOPY: | ||||
$paths = phutil_tag( | $paths = phutil_tag( | ||||
'strong', | 'strong', | ||||
array(), | array(), | ||||
implode(', ', $changeset->getAwayPaths())); | implode(', ', $changeset->getAwayPaths())); | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht( | $messages[] = pht( | ||||
'This file was deleted after being copied to %s.', | 'This file was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht( | $messages[] = pht( | ||||
'This image was deleted after being copied to %s.', | 'This image was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This directory was deleted after being copied to %s.', | 'This directory was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht( | $messages[] = pht( | ||||
'This binary file was deleted after being copied to %s.', | 'This binary file was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht( | $messages[] = pht( | ||||
'This symlink was deleted after being copied to %s.', | 'This symlink was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht( | $messages[] = pht( | ||||
'This submodule was deleted after being copied to %s.', | 'This submodule was deleted after being copied to %s.', | ||||
$paths); | $paths); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
switch ($file) { | switch ($file) { | ||||
case DifferentialChangeType::FILE_TEXT: | case DifferentialChangeType::FILE_TEXT: | ||||
$message = pht('This is a file.'); | // This is the default case, so we only render this header if | ||||
// forced to since it's not very useful. | |||||
if ($force) { | |||||
$messages[] = pht('This file was not modified.'); | |||||
} | |||||
break; | break; | ||||
case DifferentialChangeType::FILE_IMAGE: | case DifferentialChangeType::FILE_IMAGE: | ||||
$message = pht('This is an image.'); | $messages[] = pht('This is an image.'); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_DIRECTORY: | case DifferentialChangeType::FILE_DIRECTORY: | ||||
$message = pht('This is a directory.'); | $messages[] = pht('This is a directory.'); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_BINARY: | case DifferentialChangeType::FILE_BINARY: | ||||
$message = pht('This is a binary file.'); | $messages[] = pht('This is a binary file.'); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SYMLINK: | case DifferentialChangeType::FILE_SYMLINK: | ||||
$message = pht('This is a symlink.'); | $messages[] = pht('This is a symlink.'); | ||||
break; | break; | ||||
case DifferentialChangeType::FILE_SUBMODULE: | case DifferentialChangeType::FILE_SUBMODULE: | ||||
$message = pht('This is a submodule.'); | $messages[] = pht('This is a submodule.'); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
} | } | ||||
$encoding = $this->getOriginalCharacterEncoding(); | |||||
if ($encoding != 'utf8' && ($file == DifferentialChangeType::FILE_TEXT)) { | |||||
if ($encoding) { | |||||
$messages[] = pht( | |||||
'This file was converted from %s for display.', | |||||
phutil_tag('strong', array(), $encoding)); | |||||
} else { | |||||
$messages[] = pht( | |||||
'This file uses an unknown character encoding.'); | |||||
} | |||||
} | |||||
if (!$messages) { | |||||
return null; | |||||
} | } | ||||
return phutil_tag_div('differential-meta-notice', $message); | foreach ($messages as $key => $message) { | ||||
$messages[$key] = phutil_tag('li', array(), $message); | |||||
} | |||||
return phutil_tag( | |||||
'ul', | |||||
array( | |||||
'class' => 'differential-meta-notice', | |||||
), | |||||
$messages); | |||||
} | } | ||||
protected function renderPropertyChangeHeader() { | protected function renderPropertyChangeHeader() { | ||||
$changeset = $this->getChangeset(); | $changeset = $this->getChangeset(); | ||||
$old = $changeset->getOldProperties(); | $old = $changeset->getOldProperties(); | ||||
$new = $changeset->getNewProperties(); | $new = $changeset->getNewProperties(); | ||||
▲ Show 20 Lines • Show All 154 Lines • Show Last 20 Lines |