summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@csarven-laptop.(none)>2009-05-25 14:55:23 -0400
committerSarven Capadisli <csarven@csarven-laptop.(none)>2009-05-25 14:55:23 -0400
commitd5c45aae43a23e026cf7dad2cf9063d101f93b63 (patch)
treefad9a802826d477fc434fe34d7923046a7fa8aa2
parentb7d051280e41117d800b7d0e0429cc75eb38d0f5 (diff)
parent7923e84fba66d8e3e7ec24a8a663f0c2c0f0e533 (diff)
Merge branch '0.8.x' of git://gitorious.org/laconica/dev into 0.8.x
-rw-r--r--actions/attachment_thumbnail.php127
-rw-r--r--js/util.js28
2 files changed, 141 insertions, 14 deletions
diff --git a/actions/attachment_thumbnail.php b/actions/attachment_thumbnail.php
new file mode 100644
index 000000000..32fab1324
--- /dev/null
+++ b/actions/attachment_thumbnail.php
@@ -0,0 +1,127 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Show notice attachments
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Personal
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008-2009 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+ exit(1);
+}
+
+require_once INSTALLDIR.'/actions/attachment.php';
+
+/**
+ * Show notice attachments
+ *
+ * @category Personal
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+class Attachment_thumbnailAction extends AttachmentAction
+{
+ /**
+ * Show page, a template method.
+ *
+ * @return nothing
+ */
+ function showPage()
+ {
+ if (Event::handle('StartShowBody', array($this))) {
+ $this->showCore();
+ Event::handle('EndShowBody', array($this));
+ }
+ }
+
+ /**
+ * Show core.
+ *
+ * Shows local navigation, content block and aside.
+ *
+ * @return nothing
+ */
+ function showCore()
+ {
+ $file_thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id);
+ if (empty($file_thumbnail->url)) {
+ return;
+ }
+ $url = $file_thumbnail->url;
+
+ $attr = array(
+ 'id' => 'thumbnail'
+ , 'src' => $url
+ , 'alt' => 'Thumbnail'
+ );
+
+ $this->element('img', $attr);
+
+ }
+
+ /**
+ * Last-modified date for page
+ *
+ * When was the content of this page last modified? Based on notice,
+ * profile, avatar.
+ *
+ * @return int last-modified date as unix timestamp
+ */
+/*
+ function lastModified()
+ {
+ return max(strtotime($this->notice->created),
+ strtotime($this->profile->modified),
+ ($this->avatar) ? strtotime($this->avatar->modified) : 0);
+ }
+*/
+
+ /**
+ * An entity tag for this page
+ *
+ * Shows the ETag for the page, based on the notice ID and timestamps
+ * for the notice, profile, and avatar. It's weak, since we change
+ * the date text "one hour ago", etc.
+ *
+ * @return string etag
+ */
+/*
+ function etag()
+ {
+ $avtime = ($this->avatar) ?
+ strtotime($this->avatar->modified) : 0;
+
+ return 'W/"' . implode(':', array($this->arg('action'),
+ common_language(),
+ $this->notice->id,
+ strtotime($this->notice->created),
+ strtotime($this->profile->modified),
+ $avtime)) . '"';
+ }
+*/
+}
+
diff --git a/js/util.js b/js/util.js
index 9ee2a1963..ffaedc690 100644
--- a/js/util.js
+++ b/js/util.js
@@ -23,20 +23,20 @@ $(document).ready(function(){
//FIXME
//need to link to proper url depending on site config (path name and theme, for instance)
- $('a.attachment').click(function() {$().jOverlay({url:'/attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/ajax'}); return false; });
- $('.entry-title a.attachment').append('&nbsp;<img style="display: inline; vertical-align: middle" src="/theme/base/images/icons/clip-inline.png" alt="Attachment" />');
- $('a.thumbnail').hover(function() {
- anchor = $(this);
- $.get('/attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) {
- anchor.append(data);
- $('#thumbnail').fadeIn('def');
- });
- },
- function() {
- setTimeout(function() {
- $('#thumbnail').fadeOut('slow', function() {$(this).remove();});
- }, 500);
- }
+ $('a.attachment').click(function() {$().jOverlay({url: $('address .url')[0].href+'/attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/ajax'}); return false; });
+ $('a.thumbnail').hover(
+ function() {
+ anchor = $(this);
+ $.get($('address .url')[0].href+'/attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) {
+ anchor.append(data);
+ $('#thumbnail').fadeIn('def');
+ });
+ },
+ function() {
+ setTimeout(function() {
+ $('#thumbnail').fadeOut('slow', function() {$(this).remove();});
+ }, 500);
+ }
);
// count character on keyup