Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x

This commit is contained in:
Evan Prodromou 2011-03-08 22:48:34 -05:00
commit 88e09d45c9
58 changed files with 296 additions and 163 deletions

View File

@ -256,7 +256,7 @@ class AtompubfavoritefeedAction extends ApiAuthAction
if (empty($notice)) { if (empty($notice)) {
// XXX: import from listed URL or something // XXX: import from listed URL or something
// TRANS: Client exception thrown when trying favorite a notice without content. // TRANS: Client exception thrown when trying favorite a notice without content.
throw new ClientException(_('Unknown note.')); throw new ClientException(_('Unknown notice.'));
} }
$old = Fave::pkeyGet(array('user_id' => $this->auth_user->id, $old = Fave::pkeyGet(array('user_id' => $this->auth_user->id,

View File

@ -228,6 +228,9 @@ var SN = { // StatusNet
* will be extracted and copied in, replacing the original form. * will be extracted and copied in, replacing the original form.
* If there's no form, the first paragraph will be used. * If there's no form, the first paragraph will be used.
* *
* This will automatically be applied on the 'submit' event for
* any form with the 'ajax' class.
*
* @fixme can sometimes explode confusingly if returnd data is bogus * @fixme can sometimes explode confusingly if returnd data is bogus
* @fixme error handling is pretty vague * @fixme error handling is pretty vague
* @fixme can't submit file uploads * @fixme can't submit file uploads
@ -633,17 +636,6 @@ var SN = { // StatusNet
} }
}, },
/**
* Setup function -- DOES NOT apply immediately.
*
* Sets up event handlers for favor/disfavor forms to submit via XHR.
* Uses 'live' rather than 'bind', so applies to future as well as present items.
*/
NoticeFavor: function() {
$('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; });
$('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; });
},
NoticeInlineReplyPlaceholder: function(notice) { NoticeInlineReplyPlaceholder: function(notice) {
var list = notice.find('ul.threaded-replies'); var list = notice.find('ul.threaded-replies');
var placeholder = $('<li class="notice-reply-placeholder">' + var placeholder = $('<li class="notice-reply-placeholder">' +
@ -1271,7 +1263,7 @@ var SN = { // StatusNet
var profileLink = $('#nav_profile a').attr('href'); var profileLink = $('#nav_profile a').attr('href');
if (profileLink) { if (profileLink) {
var authorUrl = $(notice).find('.entry-title .author a.url').attr('href'); var authorUrl = $(notice).find('.vcard.author a.url').attr('href');
if (authorUrl == profileLink) { if (authorUrl == profileLink) {
if (action == 'all' || action == 'showstream') { if (action == 'all' || action == 'showstream') {
// Posts always show on your own friends and profile streams. // Posts always show on your own friends and profile streams.
@ -1309,7 +1301,7 @@ var SN = { // StatusNet
*/ */
NoticeForm: function() { NoticeForm: function() {
if ($('body.user_in').length > 0) { if ($('body.user_in').length > 0) {
$('.'+SN.C.S.FormNotice).each(function() { $('.ajax-notice').each(function() {
var form = $(this); var form = $(this);
SN.U.NoticeLocationAttach(form); SN.U.NoticeLocationAttach(form);
SN.U.FormNoticeXHR(form); SN.U.FormNoticeXHR(form);
@ -1331,7 +1323,6 @@ var SN = { // StatusNet
if (masterForm.length > 0) { if (masterForm.length > 0) {
SN.C.I.NoticeFormMaster = document._importNode(masterForm[0], true); SN.C.I.NoticeFormMaster = document._importNode(masterForm[0], true);
} }
SN.U.NoticeFavor();
SN.U.NoticeRepeat(); SN.U.NoticeRepeat();
SN.U.NoticeReply(); SN.U.NoticeReply();
SN.U.NoticeInlineReplySetup(); SN.U.NoticeInlineReplySetup();
@ -1348,12 +1339,6 @@ var SN = { // StatusNet
*/ */
EntityActions: function() { EntityActions: function() {
if ($('body.user_in').length > 0) { if ($('body.user_in').length > 0) {
$('.form_user_subscribe').live('click', function() { SN.U.FormXHR($(this)); return false; });
$('.form_user_unsubscribe').live('click', function() { SN.U.FormXHR($(this)); return false; });
$('.form_group_join').live('click', function() { SN.U.FormXHR($(this)); return false; });
$('.form_group_leave').live('click', function() { SN.U.FormXHR($(this)); return false; });
$('.form_user_nudge').live('click', function() { SN.U.FormXHR($(this)); return false; });
SN.U.NewDirectMessage(); SN.U.NewDirectMessage();
} }
}, },
@ -1380,6 +1365,16 @@ var SN = { // StatusNet
}); });
}, },
/**
* Set up any generic 'ajax' form so it submits via AJAX with auto-replacement.
*/
AjaxForms: function() {
$('form.ajax').live('submit', function() {
SN.U.FormXHR($(this));
return false;
});
},
/** /**
* Add logic to any file upload forms to handle file size limits, * Add logic to any file upload forms to handle file size limits,
* on browsers that support basic FileAPI. * on browsers that support basic FileAPI.
@ -1416,6 +1411,7 @@ var SN = { // StatusNet
* don't start them loading until after DOM-ready time! * don't start them loading until after DOM-ready time!
*/ */
$(document).ready(function(){ $(document).ready(function(){
SN.Init.AjaxForms();
SN.Init.UploadForms(); SN.Init.UploadForms();
if ($('.'+SN.C.S.FormNotice).length > 0) { if ($('.'+SN.C.S.FormNotice).length > 0) {
SN.Init.NoticeForm(); SN.Init.NoticeForm();

2
js/util.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -147,6 +147,6 @@ class DisfavorForm extends Form
*/ */
function formClass() function formClass()
{ {
return 'form_disfavor'; return 'form_disfavor ajax';
} }
} }

View File

@ -146,6 +146,6 @@ class FavorForm extends Form
*/ */
function formClass() function formClass()
{ {
return 'form_favor'; return 'form_favor ajax';
} }
} }

View File

@ -172,7 +172,13 @@ class Form extends Widget
} }
/** /**
* Class of the form. * Class of the form. May include space-separated list of multiple classes.
*
* If 'ajax' is included, the form will automatically be submitted with
* an 'ajax=1' parameter added, and the resulting form or error message
* will replace the form after submission.
*
* It's up to you to make sure that the target action supports this!
* *
* @return string the form's class * @return string the form's class
*/ */

View File

@ -88,7 +88,7 @@ class JoinForm extends Form
function formClass() function formClass()
{ {
return 'form_group_join'; return 'form_group_join ajax';
} }
/** /**

View File

@ -88,7 +88,7 @@ class LeaveForm extends Form
function formClass() function formClass()
{ {
return 'form_group_leave'; return 'form_group_leave ajax';
} }
/** /**

View File

@ -132,7 +132,7 @@ class NoticeForm extends Form
function formClass() function formClass()
{ {
return 'form_notice'; return 'form_notice ajax-notice';
} }
/** /**
@ -187,12 +187,14 @@ class NoticeForm extends Form
if (common_config('attachments', 'uploads')) { if (common_config('attachments', 'uploads')) {
$this->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota')); $this->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota'));
// TRANS: Input label in notice form for adding an attachment. // TRANS: Input label in notice form for adding an attachment.
$this->out->element('label', array('for' => 'notice_data-attach'),_('Attach')); $this->out->elementStart('label', array('class' => 'notice_data-attach'));
$this->out->element('input', array('id' => 'notice_data-attach', $this->out->text(_('Attach'));
$this->out->element('input', array('class' => 'notice_data-attach',
'type' => 'file', 'type' => 'file',
'name' => 'attach', 'name' => 'attach',
// TRANS: Title for input field to attach a file to a notice. // TRANS: Title for input field to attach a file to a notice.
'title' => _('Attach a file.'))); 'title' => _('Attach a file.')));
$this->out->elementEnd('label');
} }
if ($this->action) { if ($this->action) {
$this->out->hidden('notice_return-to', $this->action, 'returnto'); $this->out->hidden('notice_return-to', $this->action, 'returnto');
@ -210,6 +212,7 @@ class NoticeForm extends Form
// @fixme checkbox method allows no way to change the id without changing the name // @fixme checkbox method allows no way to change the id without changing the name
//$this->out->checkbox('notice_data-geo', _('Share my location'), true); //$this->out->checkbox('notice_data-geo', _('Share my location'), true);
$this->out->elementStart('label', 'notice_data-geo');
$this->out->element('input', array( $this->out->element('input', array(
'name' => 'notice_data-geo', 'name' => 'notice_data-geo',
'type' => 'checkbox', 'type' => 'checkbox',
@ -218,11 +221,10 @@ class NoticeForm extends Form
'checked' => true, // ? 'checked' => true, // ?
)); ));
$this->out->text(' '); $this->out->text(' ');
$this->out->element('label', array('class' => 'notice_data-geo', // TRANS: Field label to add location to a notice.
'for' => $this->id() . '-notice_data-geo'), $this->out->text(_('Share my location'));
// TRANS: Field label to add location to a notice. $this->out->elementEnd('label');
_('Share my location'));
$this->out->elementEnd('div'); $this->out->elementEnd('div');
// TRANS: Text to not share location for a notice in notice form. // TRANS: Text to not share location for a notice in notice form.
$share_disable_text = _('Do not share my location'); $share_disable_text = _('Do not share my location');

View File

@ -89,7 +89,7 @@ class NudgeForm extends Form
function formClass() function formClass()
{ {
return 'form_user_nudge'; return 'form_user_nudge ajax';
} }

View File

@ -89,7 +89,7 @@ class SubscribeForm extends Form
function formClass() function formClass()
{ {
return 'form_user_subscribe'; return 'form_user_subscribe ajax';
} }

View File

@ -89,7 +89,7 @@ class UnsubscribeForm extends Form
function formClass() function formClass()
{ {
return 'form_user_unsubscribe'; return 'form_user_unsubscribe ajax';
} }
/** /**

View File

@ -616,12 +616,15 @@ class BookmarkPlugin extends MicroAppPlugin
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'alt' => $profile->getBestName())); 'alt' => $profile->getBestName()));
$out->raw('&nbsp;'); $out->raw('&#160;'); // avoid &nbsp; for AJAX XML compatibility
$out->elementStart('span', 'vcard author'); // hack for belongsOnTimeline; JS needs to be able to find the author
$out->element('a', $out->element('a',
array('href' => $profile->profileurl, array('class' => 'url',
'href' => $profile->profileurl,
'title' => $profile->getBestName()), 'title' => $profile->getBestName()),
$profile->nickname); $profile->nickname);
$out->elementEnd('span');
} }
function entryForm($out) function entryForm($out)

View File

@ -94,7 +94,7 @@ class BookmarkForm extends Form
function formClass() function formClass()
{ {
return 'form_settings'; return 'form_settings ajax-notice';
} }
/** /**

View File

@ -125,6 +125,9 @@ class NewbookmarkAction extends Action
function newBookmark() function newBookmark()
{ {
if ($this->boolean('ajax')) {
StatusNet::setApi(true);
}
try { try {
if (empty($this->title)) { if (empty($this->title)) {
throw new ClientException(_('Bookmark must have a title.')); throw new ClientException(_('Bookmark must have a title.'));
@ -147,7 +150,37 @@ class NewbookmarkAction extends Action
return; return;
} }
common_redirect($saved->bestUrl(), 303); if ($this->boolean('ajax')) {
header('Content-Type: text/xml;charset=utf-8');
$this->xw->startDocument('1.0', 'UTF-8');
$this->elementStart('html');
$this->elementStart('head');
// TRANS: Page title after sending a notice.
$this->element('title', null, _('Notice posted'));
$this->elementEnd('head');
$this->elementStart('body');
$this->showNotice($saved);
$this->elementEnd('body');
$this->elementEnd('html');
} else {
common_redirect($saved->bestUrl(), 303);
}
}
/**
* Output a notice
*
* Used to generate the notice code for Ajax results.
*
* @param Notice $notice Notice that was saved
*
* @return void
*/
function showNotice($notice)
{
class_exists('NoticeList'); // @fixme hack for autoloader
$nli = new NoticeListItem($notice, $this);
$nli->show();
} }
/** /**

View File

@ -108,7 +108,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
#form_notice label[for="notice_data-attach"] { #form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -166,7 +166,9 @@ class Poll extends Managed_DataObject
$raw = array(); $raw = array();
while ($pr->fetch()) { while ($pr->fetch()) {
$raw[$pr->selection] = $pr->votes; // Votes list 1-based
// Array stores 0-based
$raw[$pr->selection - 1] = $pr->votes;
} }
$counts = array(); $counts = array();
@ -216,6 +218,7 @@ class Poll extends Managed_DataObject
array('id' => $p->id)); array('id' => $p->id));
} }
common_log(LOG_DEBUG, "Saving poll: $p->id $p->uri");
$p->insert(); $p->insert();
$content = sprintf(_m('Poll: %s %s'), $content = sprintf(_m('Poll: %s %s'),

View File

@ -127,6 +127,9 @@ class NewPollAction extends Action
function newPoll() function newPoll()
{ {
if ($this->boolean('ajax')) {
StatusNet::setApi(true);
}
try { try {
if (empty($this->question)) { if (empty($this->question)) {
throw new ClientException(_('Poll must have a question.')); throw new ClientException(_('Poll must have a question.'));
@ -147,7 +150,37 @@ class NewPollAction extends Action
return; return;
} }
common_redirect($saved->bestUrl(), 303); if ($this->boolean('ajax')) {
header('Content-Type: text/xml;charset=utf-8');
$this->xw->startDocument('1.0', 'UTF-8');
$this->elementStart('html');
$this->elementStart('head');
// TRANS: Page title after sending a notice.
$this->element('title', null, _('Notice posted'));
$this->elementEnd('head');
$this->elementStart('body');
$this->showNotice($saved);
$this->elementEnd('body');
$this->elementEnd('html');
} else {
common_redirect($saved->bestUrl(), 303);
}
}
/**
* Output a notice
*
* Used to generate the notice code for Ajax results.
*
* @param Notice $notice Notice that was saved
*
* @return void
*/
function showNotice($notice)
{
class_exists('NoticeList'); // @fixme hack for autoloader
$nli = new NoticeListItem($notice, $this);
$nli->show();
} }
/** /**
@ -163,7 +196,7 @@ class NewPollAction extends Action
} }
$form = new NewPollForm($this, $form = new NewPollForm($this,
$this->questions, $this->question,
$this->options); $this->options);
$form->show(); $form->show();

View File

@ -83,7 +83,7 @@ class NewpollForm extends Form
function formClass() function formClass()
{ {
return 'form_settings'; return 'form_settings ajax-notice';
} }
/** /**

10
plugins/Poll/poll.css Normal file
View File

@ -0,0 +1,10 @@
.poll-block {
float: left;
height: 16px;
background: #8aa;
margin-right: 8px;
}
.poll-winner {
background: #4af;
}

View File

@ -83,7 +83,7 @@ class PollResponseForm extends Form
function formClass() function formClass()
{ {
return 'form_settings'; return 'form_settings ajax';
} }
/** /**

View File

@ -83,7 +83,7 @@ class PollResultForm extends Form
function formClass() function formClass()
{ {
return 'form_settings'; return 'form_settings ajax';
} }
/** /**
@ -109,14 +109,33 @@ class PollResultForm extends Form
$out = $this->out; $out = $this->out;
$counts = $poll->countResponses(); $counts = $poll->countResponses();
$out->element('p', 'poll-question', $poll->question); $width = 200;
$out->elementStart('ul', 'poll-options'); $max = max($counts);
foreach ($poll->getOptions() as $i => $opt) { if ($max == 0) {
$out->elementStart('li'); $max = 1; // quick hack :D
$out->text($counts[$i] . ' ' . $opt);
$out->elementEnd('li');
} }
$out->elementEnd('ul');
$out->element('p', 'poll-question', $poll->question);
$out->elementStart('table', 'poll-results');
foreach ($poll->getOptions() as $i => $opt) {
$w = intval($counts[$i] * $width / $max) + 1;
$out->elementStart('tr');
$out->elementStart('td');
$out->text($opt);
$out->elementEnd('td');
$out->elementStart('td');
$out->element('span', array('class' => 'poll-block',
'style' => "width: {$w}px"),
"\xc2\xa0"); // nbsp
$out->text($counts[$i]);
$out->elementEnd('td');
$out->elementEnd('tr');
}
$out->elementEnd('table');
} }
/** /**

View File

@ -145,7 +145,22 @@ class RespondPollAction extends Action
return; return;
} }
common_redirect($this->poll->bestUrl(), 303); if ($this->arg('ajax')) {
header('Content-Type: text/xml;charset=utf-8');
$this->xw->startDocument('1.0', 'UTF-8');
$this->elementStart('html');
$this->elementStart('head');
// TRANS: Page title after sending a poll response.
$this->element('title', null, _m('Poll results'));
$this->elementEnd('head');
$this->elementStart('body');
$form = new PollResultForm($this->poll, $this);
$form->show();
$this->elementEnd('body');
$this->elementEnd('html');
} else {
common_redirect($this->poll->bestUrl(), 303);
}
} }
/** /**

View File

@ -108,4 +108,21 @@ class ShowPollAction extends ShownoticeAction
$this->poll->question); $this->poll->question);
} }
/**
* @fixme combine the notice time with poll update time
*/
function lastModified()
{
return Action::lastModified();
}
/**
* @fixme combine the notice time with poll update time
*/
function etag()
{
return Action::etag();
}
} }

View File

@ -17,13 +17,13 @@ max-width:451px;
display:none; display:none;
} }
.realtime-popup #form_notice label[for=notice_data-attach], .realtime-popup #form_notice label.notice_data-attach,
.realtime-popup #form_notice #notice_data-attach, .realtime-popup #form_notice input.notice_data-attach,
.realtime-popup #form_notice label.notice_data-geo { .realtime-popup #form_notice label.notice_data-geo {
top:0; top:0;
} }
.realtime-popup #form_notice #notice_data-attach { .realtime-popup #form_notice input.notice_data-attach {
left:auto; left:auto;
right:0; right:0;
} }

View File

@ -180,21 +180,6 @@ class UserFlagPlugin extends Plugin
} }
} }
/**
* Initialize any flagging buttons on the page
*
* @param Action $action action being shown
*
* @return boolean hook result
*/
function onEndShowScripts($action)
{
$action->inlineScript('if ($(".form_entity_flag").length > 0) { '.
'$(".form_entity_flag").bind("click", function() {'.
'SN.U.FormXHR($(this)); return false; }); }');
return true;
}
/** /**
* Check whether a user has one of our defined rights * Check whether a user has one of our defined rights
* *

View File

@ -54,7 +54,7 @@ class FlagProfileForm extends ProfileActionForm
*/ */
function formClass() function formClass()
{ {
return 'form_entity_flag'; return 'form_entity_flag ajax';
} }
/** /**

View File

@ -597,19 +597,19 @@ float:left;
font-size:1.3em; font-size:1.3em;
margin-bottom:7px; margin-bottom:7px;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:absolute; position:absolute;
top:25px; top:25px;
right:10.5%; right:10.5%;
cursor:pointer; cursor:pointer;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
width:16px; width:16px;
height:16px; height:16px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
padding:0; padding:0;
height:16px; height:16px;
} }

View File

@ -462,11 +462,11 @@ float:left;
font-size:1.3em; font-size:1.3em;
margin-bottom:7px; margin-bottom:7px;
} }
#form_notice label[for=notice_data-attach] { #form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
} }
#form_notice label[for=notice_data-attach], #form_notice label.notice_data-attach,
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
position:absolute; position:absolute;
top:25px; top:25px;
right:49px; right:49px;
@ -474,7 +474,7 @@ width:16px;
height:16px; height:16px;
cursor:pointer; cursor:pointer;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
text-indent:-279px; text-indent:-279px;
} }
#form_notice #notice_submit label { #form_notice #notice_submit label {

View File

@ -172,14 +172,14 @@ color:#333333;
#form_notice.warning .count { #form_notice.warning .count {
color:#000000; color:#000000;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,

View File

@ -114,8 +114,8 @@ address {
height: 54px; height: 54px;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
top: 27px; top: 27px;
} }

View File

@ -61,7 +61,7 @@ line-height:auto;
color:#FFFFFF; color:#FFFFFF;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }

View File

@ -94,7 +94,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
.form_notice label[for="notice_data-attach"] { .form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -161,8 +161,8 @@ address {
border-radius: 6px; border-radius: 6px;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
top: 27px; top: 27px;
right: 86px; right: 86px;
} }
@ -594,7 +594,7 @@ padding-right:0;
right: 6px !important; right: 6px !important;
} }
.realtime-popup .form_notice label[for=notice_data-attach], .realtime-popup .form_notice #notice_data-attach { .realtime-popup .form_notice label.notice_data-attach, .realtime-popup .form_notice input.notice_data-attach {
right: 74px; right: 74px;
top: 3px !important; top: 3px !important;
} }

View File

@ -65,7 +65,7 @@ line-height:auto;
color:#FFFFFF; color:#FFFFFF;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }

View File

@ -99,7 +99,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
.form_notice label[for="notice_data-attach"] { .form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -493,19 +493,19 @@ float:left;
font-size:1.3em; font-size:1.3em;
margin-bottom:7px; margin-bottom:7px;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:absolute; position:absolute;
top:25px; top:25px;
right:10.5%; right:10.5%;
cursor:pointer; cursor:pointer;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
width:16px; width:16px;
height:16px; height:16px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
padding:0; padding:0;
height:16px; height:16px;
} }
@ -1602,7 +1602,7 @@ background:none;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,
@ -1787,10 +1787,10 @@ color:#000000;
#form_notice.warning .count { #form_notice.warning .count {
color:#000000; color:#000000;
} }
#form_notice label[for=notice_data-attach] { #form_notice label.notice_data-attach {
background:transparent url(../../base/images/icons/twotone/green/clip-01.gif) no-repeat 0 45%; background:transparent url(../../base/images/icons/twotone/green/clip-01.gif) no-repeat 0 45%;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }

View File

@ -34,7 +34,7 @@ height:16px;
width:16px; width:16px;
display:block; display:block;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
filter: alpha(opacity = 0); filter: alpha(opacity = 0);
left:33.5%; left:33.5%;
} }

View File

@ -152,14 +152,14 @@ color:#333333;
.entity_actions .dialogbox input { .entity_actions .dialogbox input {
color:#000000; color:#000000;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,

View File

@ -16,7 +16,7 @@ background-color:#C8D1D5;
.form_notice .count + label { .form_notice .count + label {
background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }
.notice-options form.form_favor input.submit { .notice-options form.form_favor input.submit {

View File

@ -153,14 +153,14 @@ color:#333333;
.entity_actions .dialogbox input { .entity_actions .dialogbox input {
color:#000000; color:#000000;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,

View File

@ -16,7 +16,7 @@ background-color:#D9DADB;
.form_notice .count + label { .form_notice .count + label {
background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }
.notice-options form.form_favor input.submit { .notice-options form.form_favor input.submit {

View File

@ -234,7 +234,7 @@ p.instructions {
/*-- FORMS --*/ /*-- FORMS --*/
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,
@ -292,7 +292,7 @@ button.minimize,
.form_notice label.notice_data-geo.checked { .form_notice label.notice_data-geo.checked {
background-position:0 -1846px; background-position:0 -1846px;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
button.close { button.close {
@ -937,19 +937,19 @@ z-index:2;
.form_notice label { .form_notice label {
float:left; float:left;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:absolute; position:absolute;
top:2em; top:2em;
right: 3em; right: 3em;
cursor:pointer; cursor:pointer;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
width:16px; width:16px;
height:16px; height:16px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity: 0; opacity: 0;
padding:0; padding:0;
height:1.6em; height:1.6em;

View File

@ -45,7 +45,7 @@ padding:0 4px;
background:transparent url(../images/icons/icons-01.png) no-repeat 0 -328px; background:transparent url(../images/icons/icons-01.png) no-repeat 0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }
.form_notice .notice_data-geo_wrap label { .form_notice .notice_data-geo_wrap label {

View File

@ -114,7 +114,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
#form_notice label[for="notice_data-attach"] { #form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -160,8 +160,7 @@ address {
border-radius: 6px; border-radius: 6px;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach {
.form_notice #notice_data-attach {
top: 27px; top: 27px;
right: 86px; right: 86px;
} }
@ -434,8 +433,8 @@ td.entity_profile { /* cf directory table */
#entity_remote_subscribe .dialogbox { #entity_remote_subscribe .dialogbox {
border: 1px solid #7B4E82; border: 1px solid #7B4E82;
border-radius: 8px; border-radius: 8px;
-moz-border-radius: 8px; -moz-border-radius: 8px;
-webkit-border-radius: 8px; -webkit-border-radius: 8px;
} }
@ -612,7 +611,7 @@ padding-right:0;
right: 6px !important; right: 6px !important;
} }
.realtime-popup .form_notice label[for=notice_data-attach], .realtime-popup .form_notice #notice_data-attach { .realtime-popup .form_notice label.notice_data-attach, .realtime-popup .form_notice input.notice_data-attach {
right: 74px; right: 74px;
top: 3px !important; top: 3px !important;
} }
@ -637,8 +636,8 @@ padding-right:0;
} }
.bookmark-notice-count { .bookmark-notice-count {
border-radius: 4px; border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
padding: 1px 6px; padding: 1px 6px;
font-size: 1.2em; font-size: 1.2em;
@ -676,8 +675,8 @@ padding-right:0;
} }
ul.bookmark-tags a { ul.bookmark-tags a {
border-radius: 4px; border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
padding: 1px 6px; padding: 1px 6px;
background: #f2f2f2; background: #f2f2f2;
@ -761,8 +760,8 @@ ul.bookmark-tags a:hover {
/* Onboard specific styles */ /* Onboard specific styles */
.onboard-flash { .onboard-flash {
border-radius: 6px; border-radius: 6px;
-moz-border-radius: 6px; -moz-border-radius: 6px;
-webkit-border-radius: 6px; -webkit-border-radius: 6px;
font-size: 1.1em; font-size: 1.1em;
box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);

View File

@ -22,11 +22,11 @@ display:block;
width: 106px; width: 106px;
max-width: 106px; max-width: 106px;
} }
.form_notice #notice_data-attach_selected, .form_notice input.notice_data-attach_selected,
.form_notice #notice_data-geo_selected { .form_notice #notice_data-geo_selected {
width:78.75%; width:78.75%;
} }
.form_notice #notice_data-attach_selected button, .form_notice input.notice_data-attach_selected button,
.form_notice #notice_data-geo_selected button { .form_notice #notice_data-geo_selected button {
padding:0 4px; padding:0 4px;
} }
@ -65,7 +65,7 @@ line-height:auto;
color:#FFFFFF; color:#FFFFFF;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }

View File

@ -99,7 +99,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
.form_notice label[for="notice_data-attach"] { .form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -450,19 +450,24 @@ float:left;
font-size:1.3em; font-size:1.3em;
margin-bottom:7px; margin-bottom:7px;
} }
#form_notice label[for=notice_data-attach], #form_notice label.notice_data-attach,
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
position:absolute; position:absolute;
top:25px;
cursor:pointer; cursor:pointer;
} }
#form_notice label[for=notice_data-attach] { #form_notice label.notice_data-attach {
top:25px;
}
#form_notice input.notice_data-attach {
top:0;
}
#form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
left:394px; left:394px;
width:16px; width:16px;
height:16px; height:16px;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
left:183px; left:183px;
padding:0; padding:0;
height:16px; height:16px;

View File

@ -192,14 +192,14 @@ color:#333333;
#form_notice.warning .count { #form_notice.warning .count {
color:#000000; color:#000000;
} }
#form_notice label[for=notice_data-attach] { #form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,

View File

@ -226,21 +226,28 @@ address .poweredby {
color: #333 !important; color: #333 !important;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:absolute; position:absolute;
top: 31px;
right: 88px;
cursor:pointer; cursor:pointer;
} }
.form_notice label.notice_data-attach {
top: 31px;
right: 88px;
}
.form_notice input.notice_data-attach {
/* Positioned inside the label */
top: 0;
right: 0;
}
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
text-indent:-9999px; text-indent:-9999px;
width:16px; width:16px;
height:16px; height:16px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
padding:0; padding:0;
height:16px; height:16px;
} }
@ -348,7 +355,7 @@ address .poweredby {
opacity: 1; opacity: 1;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
@ -1724,7 +1731,7 @@ body.realtime-popup {
width: 86px; width: 86px;
} }
.realtime-popup .form_notice label[for=notice_data-attach], .form_notice #notice_data-attach { .realtime-popup .form_notice label.notice_data-attach {
right: 70px; right: 70px;
} }
@ -1734,7 +1741,7 @@ body.realtime-popup {
/* icons */ /* icons */
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,
@ -1921,7 +1928,7 @@ background-position:0 -1648px;
#new_group a { #new_group a {
background-position:0 -1054px; background-position:0 -1054px;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position: 0 -328px; background-position: 0 -328px;
} }
.form_notice label.notice_data-geo { .form_notice label.notice_data-geo {

View File

@ -61,7 +61,7 @@ line-height:auto;
color:#FFFFFF; color:#FFFFFF;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }

View File

@ -230,8 +230,8 @@ h6 {font-size: 1em;}
border: 1px solid #9495b7; border: 1px solid #9495b7;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
top: 27px; top: 27px;
right: 86px; right: 86px;
} }

View File

@ -63,7 +63,7 @@ line-height:auto;
color:#FFFFFF; color:#FFFFFF;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }

View File

@ -99,7 +99,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
.form_notice label[for="notice_data-attach"] { .form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;

View File

@ -328,15 +328,15 @@ a,
color:#000000; color:#000000;
} }
.form_notice label[for=notice_data-attach] { .form_notice label.notice_data-attach {
background-position:0 -328px; background-position:0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
opacity:0; opacity:0;
} }
.form_notice label[for=notice_data-attach], .form_notice label.notice_data-attach,
#export_data li a.rss, #export_data li a.rss,
#export_data li a.atom, #export_data li a.atom,
#export_data li a.foaf, #export_data li a.foaf,

View File

@ -9,7 +9,7 @@ background-color:#C8D1D5;
.form_notice .count + label { .form_notice .count + label {
background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px;
} }
.form_notice #notice_data-attach { .form_notice input.notice_data-attach {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }
.notice-options form.form_favor input.submit { .notice-options form.form_favor input.submit {

View File

@ -109,7 +109,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator
#form_notice label[for="notice_data-attach"] { #form_notice label[for="notice_data-attach"] {
display:none; display:none;
} }
#form_notice #notice_data-attach { #form_notice input.notice_data-attach {
position:static; position:static;
clear:both; clear:both;
width:65%; width:65%;