We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 7aee7670 authored by Brion Vibber's avatar Brion Vibber

Replace the "give up and dump object" attachment view fallback with a...

Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful.
parent edee1fc0
......@@ -306,7 +306,7 @@ class Attachment extends AttachmentListItem
function showRepresentation() {
if (empty($this->oembed->type)) {
if (empty($this->attachment->mimetype)) {
$this->out->element('pre', null, 'oh well... not sure how to handle the following: ' . print_r($this->attachment, true));
$this->showFallback();
} else {
switch ($this->attachment->mimetype) {
case 'image/gif':
......@@ -332,6 +332,8 @@ class Attachment extends AttachmentListItem
$this->out->element('param', array('name' => 'autoStart', 'value' => 1));
$this->out->elementEnd('object');
break;
default:
$this->showFallback();
}
}
} else {
......@@ -354,9 +356,23 @@ class Attachment extends AttachmentListItem
break;
default:
$this->out->element('pre', null, 'oh well... not sure how to handle the following oembed: ' . print_r($this->oembed, true));
$this->showFallback();
}
}
}
function showFallback()
{
// If we don't know how to display an attachment inline, we probably
// shouldn't have gotten to this point.
//
// But, here we are... displaying details on a file or remote URL
// either on the main view or in an ajax-loaded lightbox. As a lesser
// of several evils, we'll try redirecting to the actual target via
// client-side JS.
common_log(LOG_ERR, "Empty or unknown type for file id {$this->attachment->id}; falling back to client-side redirect.");
$this->out->raw('<script>window.location = ' . json_encode($this->attachment->url) . ';</script>');
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment