summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@csarven-laptop.(none)>2009-05-24 19:49:02 -0400
committerSarven Capadisli <csarven@csarven-laptop.(none)>2009-05-24 19:49:02 -0400
commit31743dd36807e520702c29973eacd067717a74b7 (patch)
tree1617c5ef67d16c917b6f09b30e66da43f1939b3f
parent5a1c95d52fdca199957e47903819d16acaea590e (diff)
parent69f9bce276d86538c176e0c26e734ba694119864 (diff)
Merge branch '0.8.x' of git://gitorious.org/laconica/dev into 0.8.x
-rw-r--r--actions/attachment.php10
-rw-r--r--actions/attachment_ajax.php24
-rw-r--r--actions/attachments.php2
-rw-r--r--actions/tag.php4
-rw-r--r--js/util.js7
-rw-r--r--lib/attachmentlist.php6
-rw-r--r--lib/noticelist.php64
-rw-r--r--lib/router.php15
-rw-r--r--theme/base/css/display.css37
-rw-r--r--theme/default/css/display.css8
-rw-r--r--theme/identica/css/display.css8
11 files changed, 84 insertions, 101 deletions
diff --git a/actions/attachment.php b/actions/attachment.php
index b9187ff08..c51c75120 100644
--- a/actions/attachment.php
+++ b/actions/attachment.php
@@ -31,8 +31,6 @@ if (!defined('LACONICA')) {
exit(1);
}
-//require_once INSTALLDIR.'/lib/personalgroupnav.php';
-//require_once INSTALLDIR.'/lib/feedlist.php';
require_once INSTALLDIR.'/lib/attachmentlist.php';
/**
@@ -67,11 +65,11 @@ class AttachmentAction extends Action
{
parent::prepare($args);
- $id = $this->arg('attachment');
-
- $this->attachment = File::staticGet($id);
+ if ($id = $this->trimmed('attachment')) {
+ $this->attachment = File::staticGet($id);
+ }
- if (!$this->attachment) {
+ if (empty($this->attachment)) {
$this->clientError(_('No such attachment.'), 404);
return false;
}
diff --git a/actions/attachment_ajax.php b/actions/attachment_ajax.php
index 1620b27dd..6930dc112 100644
--- a/actions/attachment_ajax.php
+++ b/actions/attachment_ajax.php
@@ -46,26 +46,6 @@ require_once INSTALLDIR.'/actions/attachment.php';
class Attachment_ajaxAction extends AttachmentAction
{
/**
- * Load attributes based on database arguments
- *
- * Loads all the DB stuff
- *
- * @param array $args $_REQUEST array
- *
- * @return success flag
- */
-
- function prepare($args)
- {
- parent::prepare($args);
- if (!$this->attachment) {
- $this->clientError(_('No such attachment.'), 404);
- return false;
- }
- return true;
- }
-
- /**
* Show page, a template method.
*
* @return nothing
@@ -87,7 +67,7 @@ class Attachment_ajaxAction extends AttachmentAction
*/
function showCore()
{
- $this->elementStart('div', array('id' => 'core'));
+ $this->elementStart('div', array('id' => 'ajaxcore'));
if (Event::handle('StartShowContentBlock', array($this))) {
$this->showContentBlock();
Event::handle('EndShowContentBlock', array($this));
@@ -95,8 +75,6 @@ class Attachment_ajaxAction extends AttachmentAction
$this->elementEnd('div');
}
-
-
/**
* Last-modified date for page
*
diff --git a/actions/attachments.php b/actions/attachments.php
index 6b31c839d..d3c90fec2 100644
--- a/actions/attachments.php
+++ b/actions/attachments.php
@@ -31,8 +31,6 @@ if (!defined('LACONICA')) {
exit(1);
}
-//require_once INSTALLDIR.'/lib/personalgroupnav.php';
-//require_once INSTALLDIR.'/lib/feedlist.php';
require_once INSTALLDIR.'/lib/attachmentlist.php';
/**
diff --git a/actions/tag.php b/actions/tag.php
index 47420e4c3..e71ec06a8 100644
--- a/actions/tag.php
+++ b/actions/tag.php
@@ -49,8 +49,8 @@ class TagAction extends Action
{
$pop = new PopularNoticeSection($this);
$pop->show();
- $freqatt = new FrequentAttachmentSection($this);
- $freqatt->show();
+// $freqatt = new FrequentAttachmentSection($this);
+// $freqatt->show();
}
function title()
diff --git a/js/util.js b/js/util.js
index baa3f119e..6511c0380 100644
--- a/js/util.js
+++ b/js/util.js
@@ -17,9 +17,10 @@
*/
$(document).ready(function(){
- $('.attachments').click(function() {$().jOverlay({zIndex:999, success:function(html) {$('.attachment').click(function() {$().jOverlay({url:$(this).attr('href') + '/ajax'}); return false; });
- }, url:$(this).attr('href') + '/ajax'}); return false; });
- $('.attachment').click(function() {$().jOverlay({url:$(this).attr('href') + '/ajax'}); return false; });
+// attachments and attachment pages not used at the moment except for attachment_ajax version
+// $('.attachments').click(function() {$().jOverlay({zIndex:999, success:function(html) {$('.attachment').click(function() {$().jOverlay({url:$(this).attr('href') + '/ajax'}); return false; });
+// }, url:$(this).attr('href') + '/ajax'}); return false; });
+ $('.attachment').click(function() {$().jOverlay({url:'../attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/ajax'}); return false; });
// count character on keyup
function counter(event){
diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php
index 9485fe3d6..1be7b2fee 100644
--- a/lib/attachmentlist.php
+++ b/lib/attachmentlist.php
@@ -191,7 +191,7 @@ class AttachmentListItem extends Widget
}
function linkAttr() {
- return array('class' => 'attachment', 'href' => common_local_url('attachment', array('attachment' => $this->attachment->id)));
+ return array('class' => 'attachment', 'href' => $this->attachment->url, 'id' => 'attachment-' . $this->attachment->id);
}
function showLink() {
@@ -200,10 +200,6 @@ class AttachmentListItem extends Widget
$this->out->elementStart('h4');
$this->out->element('a', $attr, $text);
- if ($this->attachment->url !== $this->title())
- $this->out->element('span', null, " ({$this->attachment->url})");
-
-
$this->out->elementEnd('h4');
}
diff --git a/lib/noticelist.php b/lib/noticelist.php
index a52132171..51b8987fe 100644
--- a/lib/noticelist.php
+++ b/lib/noticelist.php
@@ -34,6 +34,7 @@ if (!defined('LACONICA')) {
require_once INSTALLDIR.'/lib/favorform.php';
require_once INSTALLDIR.'/lib/disfavorform.php';
+require_once INSTALLDIR.'/lib/attachmentlist.php';
/**
* widget for displaying a list of notices
@@ -179,9 +180,10 @@ class NoticeListItem extends Widget
{
$this->showStart();
$this->showNotice();
- $this->showNoticeAttachments();
+ $this->showNoticeAttachmentsIcon();
$this->showNoticeInfo();
$this->showNoticeOptions();
+ $this->showNoticeAttachments();
$this->showEnd();
}
@@ -193,45 +195,35 @@ class NoticeListItem extends Widget
$this->out->elementEnd('div');
}
- function showNoticeAttachments()
- {
- $f2p = new File_to_post;
- $f2p->post_id = $this->notice->id;
- $file = new File;
- $file->joinAdd($f2p);
- $file->selectAdd();
- $file->selectAdd('file.id as id');
- $count = $file->find(true);
- if (!$count) return;
- if (1 === $count) {
- $href = common_local_url('attachment', array('attachment' => $file->id));
- $att_class = 'attachment';
- } else {
- $href = common_local_url('attachments', array('notice' => $this->notice->id));
- $att_class = 'attachments';
+ function showNoticeAttachments() {
+ if ($this->isUsedInList()) {
+ return;
}
+ $al = new AttachmentList($this->notice, $this->out);
+ $al->show();
+ }
- $clip = theme_path('images/icons/clip', 'base');
- if ('shownotice' === $this->out->args['action']) {
- $height = '96px';
- $width = '83%';
- $width_att = '15%';
- $clip .= '-big.png';
- $top = '70px';
- } else {
- $height = '48px';
- $width = '90%';
- $width_att = '8%';
- $clip .= '.png';
- $top = '20px';
- }
-if(0)
- $this->out->elementStart('div', 'entry-attachments');
-else
- $this->out->elementStart('p', array('class' => 'entry-attachments', 'style' => "float: right; width: $width_att; background: url($clip) no-repeat; text-align: right; height: $height;"));
- $this->out->element('a', array('class' => $att_class, 'style' => "text-decoration: none; padding-top: $top; display: block; height: $height;", 'href' => $href, 'title' => "# of attachments: $count"), $count === 1 ? '' : $count);
+ function isUsedInList() {
+ return 'shownotice' !== $this->out->args['action'];
+ }
+
+ function attachmentCount($discriminant = true) {
+ $file_oembed = new File_oembed;
+ $query = "select count(*) as c from file_oembed join file_to_post on file_oembed.file_id = file_to_post.file_id where post_id=" . $this->notice->id;
+ $file_oembed->query($query);
+ $file_oembed->fetch();
+ return intval($file_oembed->c);
+ }
+ function showNoticeAttachmentsIcon()
+ {
+ if (!($this->isUsedInList() && ($count = $this->attachmentCount()))) {
+ return;
+ }
+ $href = common_local_url('shownotice', array('notice' => $this->notice->id)) . '#attachments';
+ $this->out->elementStart('p', 'entry-attachments');
+ $this->out->element('a', array('href' => $href, 'title' => "# of attachments: $count"), $count === 1 ? '' : $count);
$this->out->elementEnd('p');
}
diff --git a/lib/router.php b/lib/router.php
index 70ee0f3fb..39c005609 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -151,26 +151,35 @@ class Router
$m->connect('search/notice/rss?q=:q', array('action' => 'noticesearchrss'),
array('q' => '.+'));
+/*
+ $m->connect('attachment/ajax_by_url/*url',
+ array('action' => 'attachment_ajax'));
+*/
$m->connect('attachment/:attachment/ajax',
array('action' => 'attachment_ajax'),
- array('notice' => '[0-9]+'));
+ array('attachment' => '[0-9]+'));
+/*
+ TODO
+ not used right now, will revisit later
$m->connect('attachment/:attachment',
array('action' => 'attachment'),
- array('notice' => '[0-9]+'));
-
+ array('attachment' => '[0-9]+'));
+*/
// notice
$m->connect('notice/new', array('action' => 'newnotice'));
$m->connect('notice/new?replyto=:replyto',
array('action' => 'newnotice'),
array('replyto' => '[A-Za-z0-9_-]+'));
+/*
$m->connect('notice/:notice/attachments/ajax',
array('action' => 'attachments_ajax'),
array('notice' => '[0-9]+'));
$m->connect('notice/:notice/attachments',
array('action' => 'attachments'),
array('notice' => '[0-9]+'));
+*/
$m->connect('notice/:notice',
array('action' => 'shownotice'),
array('notice' => '[0-9]+'));
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index 5d2b5231c..8f72460a8 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -379,6 +379,12 @@ max-width:1003px;
overflow:hidden;
}
+#ajaxcore {
+width: 520px;
+height: 600px;
+background: #fff;
+}
+
#core {
position:relative;
width:100%;
@@ -742,15 +748,10 @@ border-top-style:dotted;
.notices li {
list-style-type:none;
}
-.notices li.hover {
-border-radius:4px;
--moz-border-radius:4px;
--webkit-border-radius:4px;
-}
.notices .notices {
margin-top:7px;
-margin-left:3%;
-width:97%;
+margin-left:5%;
+width:95%;
float:left;
}
@@ -827,7 +828,7 @@ clear:left;
float:left;
font-size:0.95em;
margin-left:59px;
-width:65%;
+width:60%;
}
#showstream .notice div.entry-content,
#shownotice .notice div.entry-content {
@@ -859,13 +860,11 @@ text-transform:lowercase;
.notice-options {
-padding-left:2%;
-float:left;
-width:50%;
position:relative;
font-size:0.95em;
-width:12.5%;
+width:90px;
float:right;
+margin-right:11px;
}
.notice-options a {
@@ -1048,8 +1047,20 @@ margin-bottom:18px;
margin-left:18px;
}
+p.entry-attachments {
+float: right;
+width: 8%;
+background: url(../images/icons/clip.png) no-repeat;
+text-align: right;
+height: 48px;
+}
-
+p.entry-attachments a {
+text-decoration: none;
+padding-top: 20px;
+display: block;
+height: 48px;
+}
/* TOP_POSTERS */
.section tbody td {
diff --git a/theme/default/css/display.css b/theme/default/css/display.css
index bc6bd2ee4..737db7ce9 100644
--- a/theme/default/css/display.css
+++ b/theme/default/css/display.css
@@ -214,16 +214,16 @@ background-color:#fcfcfc;
}
.notices .notices {
-background-color:rgba(200, 200, 200, 0.025);
+background-color:rgba(200, 200, 200, 0.050);
}
.notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.050);
+background-color:rgba(200, 200, 200, 0.100);
}
.notices .notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.075);
+background-color:rgba(200, 200, 200, 0.150);
}
.notices .notices .notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.100);
+background-color:rgba(200, 200, 200, 0.300);
}
/*END: NOTICES */
diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css
index b181d9056..f7abac482 100644
--- a/theme/identica/css/display.css
+++ b/theme/identica/css/display.css
@@ -214,16 +214,16 @@ background-color:#fcfcfc;
}
.notices .notices {
-background-color:rgba(200, 200, 200, 0.025);
+background-color:rgba(200, 200, 200, 0.050);
}
.notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.050);
+background-color:rgba(200, 200, 200, 0.100);
}
.notices .notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.075);
+background-color:rgba(200, 200, 200, 0.150);
}
.notices .notices .notices .notices .notices {
-background-color:rgba(200, 200, 200, 0.100);
+background-color:rgba(200, 200, 200, 0.300);
}
/*END: NOTICES */