* Scale a file (probably with a locally installed imagemagick, or similar)
* and output it to STDOUT.
* @param File $file
- * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
+ * @param array $params Scaling parameters ( e.g. [ width => '50' ] );
* @param int $flags Scaling flags ( see File:: constants )
* @throws MWException|UploadStashFileNotFoundException
* @return bool Success
* client to cache it forever.
*
* @param File $file
- * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
+ * @param array $params Scaling parameters ( e.g. [ width => '50' ] );
* @param int $flags Scaling flags ( see File:: constants )
* @throws MWException
* @return bool Success
if ( $size > self::MAX_SERVE_BYTES ) {
throw new SpecialUploadStashTooLargeException();
}
+ // Cancel output buffering and gzipping if set
+ wfResetOutputBuffers();
self::outputFileHeaders( $contentType, $size );
print $content;
$context = new DerivativeContext( $this->getContext() );
$context->setTitle( $this->getPageTitle() ); // Remove subpage
- $form = new HTMLForm( [
+ $form = HTMLForm::factory( 'ooui', [
'Clear' => [
'type' => 'hidden',
'default' => true,
'name' => 'clear',
]
], $context, 'clearStashedUploads' );
+ $form->setSubmitDestructive();
$form->setSubmitCallback( [ __CLASS__, 'tryClearStashedUploads' ] );
$form->setSubmitTextMsg( 'uploadstash-clear' );
if ( $files && count( $files ) ) {
sort( $files );
$fileListItemsHtml = '';
+ $linkRenderer = $this->getLinkRenderer();
foreach ( $files as $file ) {
- // TODO: Use Linker::link or even construct the list in plain wikitext
- $fileListItemsHtml .= Html::rawElement( 'li', [],
- Html::element( 'a', [ 'href' =>
- $this->getPageTitle( "file/$file" )->getLocalURL() ], $file )
+ $itemHtml = $linkRenderer->makeKnownLink(
+ $this->getPageTitle( "file/$file" ),
+ $file
);
+ try {
+ $fileObj = $this->stash->getFile( $file );
+ $thumb = $fileObj->generateThumbName( $file, [ 'width' => 220 ] );
+ $itemHtml .=
+ $this->msg( 'word-separator' )->escaped() .
+ $this->msg( 'parentheses' )->rawParams(
+ $linkRenderer->makeKnownLink(
+ $this->getPageTitle( "thumb/$file/$thumb" ),
+ $this->msg( 'uploadstash-thumbnail' )->text()
+ )
+ )->escaped();
+ } catch ( Exception $e ) {
+ }
+ $fileListItemsHtml .= Html::rawElement( 'li', [], $itemHtml );
}
- $this->getOutput()->addHtml( Html::rawElement( 'ul', [], $fileListItemsHtml ) );
+ $this->getOutput()->addHTML( Html::rawElement( 'ul', [], $fileListItemsHtml ) );
$form->displayForm( $formResult );
- $this->getOutput()->addHtml( Html::rawElement( 'p', [], $refreshHtml ) );
+ $this->getOutput()->addHTML( Html::rawElement( 'p', [], $refreshHtml ) );
} else {
- $this->getOutput()->addHtml( Html::rawElement( 'p', [],
+ $this->getOutput()->addHTML( Html::rawElement( 'p', [],
Html::element( 'span', [], $this->msg( 'uploadstash-nofiles' )->text() )
. ' '
. $refreshHtml