From 4c09c1dc477ef920aa408a99c88deac4e43df6e8 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 1 Mar 2011 17:01:35 -0800 Subject: [PATCH 01/74] Workaround for bug causing fatal error during favoriting; Profile::getCurrentNotice() was returning an ArrayList instead of a Notice directly due to pulling through Profile::getNotices(). This caused failure in Fave::addNew() which specifies it wants a Notice. Caused failure of the 'fav' IM command. --- classes/Profile.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/classes/Profile.php b/classes/Profile.php index fd41c6139a..d030e38b1b 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -186,6 +186,10 @@ class Profile extends Memcached_DataObject $notice = $this->getNotices(0, 1); if ($notice->fetch()) { + if ($notice instanceof ArrayWrapper) { + // hack for things trying to work with single notices + return $notice->_items[0]; + } return $notice; } else { return null; From 3eb900e31f49c7d973266bb76e99eb0737f37880 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 1 Mar 2011 17:09:41 -0800 Subject: [PATCH 02/74] More fixes for 'fav' IM command: don't die with a fatal error if the notice has already been favored, and don't spew a warning when checking for user ID match. --- lib/command.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/command.php b/lib/command.php index 3fb4d76c75..29aa286d1d 100644 --- a/lib/command.php +++ b/lib/command.php @@ -287,6 +287,18 @@ class FavCommand extends Command function handle($channel) { $notice = $this->getNotice($this->other); + + $fave = new Fave(); + $fave->user_id = $this->user->id; + $fave->notice_id = $notice->id; + $fave->find(); + + if ($fave->fetch()) { + // TRANS: Error message text shown when a favorite could not be set because it has already been favorited. + $channel->error($this->user, _('Could not create favorite: already favorited.')); + return; + } + $fave = Fave::addNew($this->user->getProfile(), $notice); if (!$fave) { @@ -300,7 +312,7 @@ class FavCommand extends Command $other = User::staticGet('id', $notice->profile_id); - if ($other && $other->id != $user->id) { + if ($other && $other->id != $this->user->id) { if ($other->email && $other->emailnotifyfav) { mail_notify_fave($other, $this->user, $notice); } From 9ad00f726fff19caf5731eaf643b9910fef5e28f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 2 Mar 2011 12:49:37 -0800 Subject: [PATCH 03/74] Add unsubscribe option to resub-feed.php --- plugins/OStatus/scripts/resub-feed.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/scripts/resub-feed.php b/plugins/OStatus/scripts/resub-feed.php index 8803c0118b..a08d837993 100644 --- a/plugins/OStatus/scripts/resub-feed.php +++ b/plugins/OStatus/scripts/resub-feed.php @@ -20,11 +20,17 @@ define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); +$longoptions = array('unsub'); +$shortoptions = 'u'; + $helptext = <<huburi with new subscription for $sub->uri\n"; -$ok = $sub->subscribe(); + +if (have_option('u') || have_option('--unsub')) { + print "Pinging hub $sub->huburi with unsubscription for $sub->uri\n"; + $ok = $sub->unsubscribe(); +} else { + print "Pinging hub $sub->huburi with new subscription for $sub->uri\n"; + $ok = $sub->subscribe(); +} if ($ok) { print "ok\n"; From 399c83db87e343d3c9845d97f83f0029f1eade38 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Wed, 2 Mar 2011 09:57:02 +0100 Subject: [PATCH 04/74] Fix typo in documentation. Spotted by Nikerabbit. --- actions/apigrouplistall.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/apigrouplistall.php b/actions/apigrouplistall.php index d05baa0992..73359ed3f9 100644 --- a/actions/apigrouplistall.php +++ b/actions/apigrouplistall.php @@ -89,7 +89,7 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction $taguribase = TagURI::base(); $id = "tag:$taguribase:Groups"; $link = common_local_url('groups'); - // TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. + // TRANS: Message is used as a subtitle when listing the latest 20 groups. %s is a site name. $subtitle = sprintf(_("groups on %s"), $sitename); switch($this->format) { From 418abd8da4c8650dcb7b3ca60259dcd86fd5d4f2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 3 Mar 2011 12:09:51 -0500 Subject: [PATCH 05/74] Revert "New version, dev cycle" This reverts commit 96d0141848e6965d0e588b151054737495fb4900. --- lib/common.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/common.php b/lib/common.php index db111df5f9..35a5391052 100644 --- a/lib/common.php +++ b/lib/common.php @@ -22,13 +22,13 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } //exit with 200 response, if this is checking fancy from the installer if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } -define('STATUSNET_BASE_VERSION', '0.9.8'); -define('STATUSNET_LIFECYCLE', 'dev'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' +define('STATUSNET_BASE_VERSION', '0.9.7'); +define('STATUSNET_LIFECYCLE', 'beta2'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' define('STATUSNET_VERSION', STATUSNET_BASE_VERSION . STATUSNET_LIFECYCLE); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility -define('STATUSNET_CODENAME', 'Letter Never Sent'); +define('STATUSNET_CODENAME', 'World Leader Pretend'); define('AVATAR_PROFILE_SIZE', 96); define('AVATAR_STREAM_SIZE', 48); From 6b5d183bac5a22aa68f3b4c9aa9b9c471e2a99e4 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 3 Mar 2011 12:10:43 -0500 Subject: [PATCH 06/74] beta3 --- lib/common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/common.php b/lib/common.php index 35a5391052..900ce9fa5b 100644 --- a/lib/common.php +++ b/lib/common.php @@ -23,7 +23,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } define('STATUSNET_BASE_VERSION', '0.9.7'); -define('STATUSNET_LIFECYCLE', 'beta2'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' +define('STATUSNET_LIFECYCLE', 'beta3'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' define('STATUSNET_VERSION', STATUSNET_BASE_VERSION . STATUSNET_LIFECYCLE); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility From 409f5f56582490b78d7f8028ba8868e79a15fc82 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 17 Mar 2011 09:21:26 -0400 Subject: [PATCH 07/74] alpha1 version of the software --- lib/framework.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/framework.php b/lib/framework.php index da96c8e1d4..0162529713 100644 --- a/lib/framework.php +++ b/lib/framework.php @@ -20,7 +20,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } define('STATUSNET_BASE_VERSION', '1.0.0'); -define('STATUSNET_LIFECYCLE', 'dev'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' +define('STATUSNET_LIFECYCLE', 'alpha1'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release' define('STATUSNET_VERSION', STATUSNET_BASE_VERSION . STATUSNET_LIFECYCLE); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility From 69bb30e09c763047c7ef38fb403f40c6c5a51255 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 23 Mar 2011 22:10:44 -0400 Subject: [PATCH 08/74] Fallback for RSVP display when Event is deleted --- plugins/Event/RSVP.php | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/plugins/Event/RSVP.php b/plugins/Event/RSVP.php index 7b61cc34ad..beb377c5bc 100644 --- a/plugins/Event/RSVP.php +++ b/plugins/Event/RSVP.php @@ -294,15 +294,19 @@ class RSVP extends Managed_DataObject function asHTML() { + $event = Happening::staticGet('id', $this->event_id); + return self::toHTML($this->getProfile(), - $this->getEvent(), + $event, $this->response); } function asString() { + $event = Happening::staticGet('id', $this->event_id); + return self::toString($this->getProfile(), - $this->getEvent(), + $event, $this->response); } @@ -310,8 +314,6 @@ class RSVP extends Managed_DataObject { $fmt = null; - $notice = $event->getNotice(); - switch ($response) { case 'Y': $fmt = _("%2s is attending %4s."); @@ -327,19 +329,26 @@ class RSVP extends Managed_DataObject break; } + if (empty($event)) { + $eventUrl = '#'; + $eventTitle = _('an unknown event'); + } else { + $notice = $event->getNotice(); + $eventUrl = $notice->bestUrl(); + $eventTitle = $event->title; + } + return sprintf($fmt, htmlspecialchars($profile->profileurl), htmlspecialchars($profile->getBestName()), - htmlspecialchars($notice->bestUrl()), - htmlspecialchars($event->title)); + htmlspecialchars($eventUrl), + htmlspecialchars($eventTitle)); } static function toString($profile, $event, $response) { $fmt = null; - $notice = $event->getNotice(); - switch ($response) { case 'Y': $fmt = _("%1s is attending %2s."); @@ -355,8 +364,15 @@ class RSVP extends Managed_DataObject break; } + if (empty($event)) { + $eventTitle = _('an unknown event'); + } else { + $notice = $event->getNotice(); + $eventTitle = $event->title; + } + return sprintf($fmt, $profile->getBestName(), - $event->title); + $eventTitle); } } From cd7ab56874bc3ed6bda377d08d436f8d89bd7404 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 4 Apr 2011 22:04:36 -0700 Subject: [PATCH 09/74] QnA * show number of answers on question notices * change label on answer submit button to "Answer" --- plugins/QnA/classes/QnA_Question.php | 14 ++++++++++++-- plugins/QnA/lib/qnanewanswerform.php | 2 +- plugins/QnA/lib/qnashowanswerform.php | 12 ++++++++++-- plugins/QnA/lib/qnashowquestionform.php | 2 +- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/QnA/classes/QnA_Question.php b/plugins/QnA/classes/QnA_Question.php index 7055876369..157eaa7a18 100644 --- a/plugins/QnA/classes/QnA_Question.php +++ b/plugins/QnA/classes/QnA_Question.php @@ -189,9 +189,11 @@ class QnA_Question extends Managed_DataObject function countAnswers() { - $a = new QnA_Answer(); + $a = new QnA_Answer(); + $a->question_id = $this->id; - return $a-count(); + + return $a->count(); } static function fromNotice($notice) @@ -221,6 +223,14 @@ class QnA_Question extends Managed_DataObject $out->elementEnd('span'); } + $cnt = $question->countAnswers(); + + if (!empty($cnt)) { + $out->elementStart('span', 'answer-count'); + $out->text(sprintf(_m('%s answers'), $cnt)); + $out->elementEnd('span'); + } + if (!empty($question->closed)) { $out->elementStart('span', 'question-closed'); $out->text(_m('This question is closed.')); diff --git a/plugins/QnA/lib/qnanewanswerform.php b/plugins/QnA/lib/qnanewanswerform.php index db4d1dfafc..a0f4cd4b22 100644 --- a/plugins/QnA/lib/qnanewanswerform.php +++ b/plugins/QnA/lib/qnanewanswerform.php @@ -118,7 +118,7 @@ class QnanewanswerForm extends Form function formActions() { // TRANS: Button text for submitting a poll response. - $this->out->submit('submit', _m('BUTTON', 'Submit')); + $this->out->submit('submit', _m('BUTTON', 'Answer')); } } diff --git a/plugins/QnA/lib/qnashowanswerform.php b/plugins/QnA/lib/qnashowanswerform.php index 5ec63e1096..890224ed69 100644 --- a/plugins/QnA/lib/qnashowanswerform.php +++ b/plugins/QnA/lib/qnashowanswerform.php @@ -65,8 +65,8 @@ class QnashowanswerForm extends Form { parent::__construct($out); - $this->answer = $answer; - $this->question = $answer->getQuestion(); + $this->answer = $answer; + $this->question = $answer->getQuestion(); } /** @@ -155,6 +155,13 @@ class QnashowanswerForm extends Form } } + + /* + * @fixme: Revise is disabled until we figure out the + * Ostatus bits This comment is just a reminder + * that the UI for this works. + */ + /* if ($user->id == $this->answer->profile_id) { $this->out->submit( 'revise', @@ -166,6 +173,7 @@ class QnashowanswerForm extends Form _('Revise your answer') ); } + */ } } diff --git a/plugins/QnA/lib/qnashowquestionform.php b/plugins/QnA/lib/qnashowquestionform.php index 71e644e2dc..ad29d0d018 100644 --- a/plugins/QnA/lib/qnashowquestionform.php +++ b/plugins/QnA/lib/qnashowquestionform.php @@ -118,7 +118,7 @@ class QnashowquestionForm extends Form 'question-' . $this->question->id ); - $this->out->raw($this->question->asHTML()); + $this->out->raw($this->question->asHTML()); } /** From 6c0bb0f35b7e457ea9ccdc2668b30df6e48cc267 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 4 Apr 2011 23:58:35 -0700 Subject: [PATCH 10/74] QnA * Some bug fixes * Better Question page --- plugins/QnA/actions/qnashowquestion.php | 50 +++++++++++++++++++++++-- plugins/QnA/classes/QnA_Answer.php | 5 +++ plugins/QnA/lib/qnanewanswerform.php | 9 +++-- plugins/QnA/lib/qnashowanswerform.php | 22 ++++++----- 4 files changed, 70 insertions(+), 16 deletions(-) diff --git a/plugins/QnA/actions/qnashowquestion.php b/plugins/QnA/actions/qnashowquestion.php index d128eeec2f..c30464bbf6 100644 --- a/plugins/QnA/actions/qnashowquestion.php +++ b/plugins/QnA/actions/qnashowquestion.php @@ -97,7 +97,49 @@ class QnashowquestionAction extends ShownoticeAction function showContent() { + $this->elementStart('div', 'qna-full-question'); $this->raw($this->question->asHTML()); + + $answer = $this->question->getAnswers(); + + $this->elementStart('div', 'qna-full-question-answers'); + + $answerIds = array(); + + // @fixme use a filtered stream! + + if (!empty($answer)) { + while ($answer->fetch()) { + $answerIds[] = $answer->getNotice()->id; + } + } + + if (count($answerIds) > 0) { + $notice = new Notice(); + $notice->query( + sprintf( + 'SELECT notice.* FROM notice WHERE notice.id IN (%s)', + implode(',', $answerIds) + ) + ); + + $nli = new NoticeList($notice, $this); + $nli->show(); + } + + $user = common_current_user(); + + if (!empty($user)) { + $profile = $user->getProfile(); + $answer = QnA_Question::getAnswer($profile); + if (empty($answer)) { + $form = new QnanewanswerForm($this, $this->question, false); + $form->show(); + } + } + + $this->elementEnd('div'); + $this->elementEnd('div'); } /** @@ -111,9 +153,11 @@ class QnashowquestionAction extends ShownoticeAction { // TRANS: Page title for a question. // TRANS: %1$s is the nickname of the user who asked the question, %2$s is the question. - return sprintf(_m('%1$s\'s question: %2$s'), - $this->user->nickname, - $this->question->title); + return sprintf( + _m('%1$s\'s question: %2$s'), + $this->user->nickname, + $this->question->title + ); } /** diff --git a/plugins/QnA/classes/QnA_Answer.php b/plugins/QnA/classes/QnA_Answer.php index c8dcd43162..d200c7b45a 100644 --- a/plugins/QnA/classes/QnA_Answer.php +++ b/plugins/QnA/classes/QnA_Answer.php @@ -155,6 +155,11 @@ class QnA_Answer extends Managed_DataObject return Notice::staticGet('uri', $this->uri); } + static function fromNotice($notice) + { + return QnA_Answer::staticGet('uri', $notice->uri); + } + function bestUrl() { return $this->getNotice()->bestUrl(); diff --git a/plugins/QnA/lib/qnanewanswerform.php b/plugins/QnA/lib/qnanewanswerform.php index a0f4cd4b22..2a81679ca3 100644 --- a/plugins/QnA/lib/qnanewanswerform.php +++ b/plugins/QnA/lib/qnanewanswerform.php @@ -47,6 +47,7 @@ if (!defined('STATUSNET')) { class QnanewanswerForm extends Form { protected $question; + protected $showQuestion; /** * Construct a new answer form @@ -56,10 +57,11 @@ class QnanewanswerForm extends Form * * @return void */ - function __construct(HTMLOutputter $out, QnA_Question $question) + function __construct(HTMLOutputter $out, QnA_Question $question, $showQuestion = true) { parent::__construct($out); $this->question = $question; + $this->showQuestion = $showQuestion; } /** @@ -103,9 +105,10 @@ class QnanewanswerForm extends Form $out = $this->out; $id = "question-" . $question->id; - $out->raw($this->question->asHTML()); + if ($this->showQuestion) { + $out->raw($this->question->asHTML()); + } - $out->element('p', 'answer', 'Your answer'); $out->hidden('id', $id); $out->textarea('answer', 'answer'); } diff --git a/plugins/QnA/lib/qnashowanswerform.php b/plugins/QnA/lib/qnashowanswerform.php index 890224ed69..665c40857f 100644 --- a/plugins/QnA/lib/qnashowanswerform.php +++ b/plugins/QnA/lib/qnashowanswerform.php @@ -46,14 +46,14 @@ require_once INSTALLDIR . '/lib/form.php'; class QnashowanswerForm extends Form { /** - * The answer to revise + * The answer to show */ - var $answer = null; + protected $answer = null; /** * The question this is an answer to */ - var $question = null; + protected $question = null; /** * Constructor @@ -76,7 +76,7 @@ class QnashowanswerForm extends Form */ function id() { - return 'revise-' . $this->answer->id; + return 'show-' . $this->answer->id; } /** @@ -109,8 +109,8 @@ class QnashowanswerForm extends Form */ function formLegend() { - // TRANS: Form legend for revising the answer. - $this->out->element('legend', null, _('Revise your answer')); + // TRANS: Form legend for showing the answer. + $this->out->element('legend', null, _('Answer')); } /** @@ -122,10 +122,12 @@ class QnashowanswerForm extends Form { $this->out->hidden( 'id', - 'revise-' . $this->answer->id + 'answer-' . $this->answer->id ); - - $this->out->raw($this->answer->asHTML()); + + + + // $this->out->raw($this->answer->asHTML()); } /** @@ -184,6 +186,6 @@ class QnashowanswerForm extends Form */ function formClass() { - return 'form_revise ajax'; + return 'form_show ajax'; } } From 5267f3d649de302e7b2f9fcb252dd10a1b7537bb Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 5 Apr 2011 00:27:51 -0700 Subject: [PATCH 11/74] QnA - Better ajax response when making a new answer. Still not right. Needs to use threading. --- plugins/QnA/actions/qnanewanswer.php | 28 ++++++++++++++++++++++++++- plugins/QnA/lib/qnashowanswerform.php | 4 +--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/plugins/QnA/actions/qnanewanswer.php b/plugins/QnA/actions/qnanewanswer.php index 94bfc09a39..0c4938e6a9 100644 --- a/plugins/QnA/actions/qnanewanswer.php +++ b/plugins/QnA/actions/qnanewanswer.php @@ -155,13 +155,39 @@ class QnanewanswerAction extends Action $answer = $this->question->getAnswer($profile); 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 an answer. $this->element('title', null, _m('Answers')); $this->elementEnd('head'); + $this->elementStart('body'); - $this->raw($answer->asHTML()); + + $nli = new NoticeListItem($notice, $this); + $nli->show(); + //$this->raw($answer->asHTML()); + + /* + $question = $this->question; + + $nli = new NoticeListItem($notice, $this); + $nli->showNotice(); + + $this->elementStart('div', array('class' => 'entry-content answer-content')); + + if (!empty($answer)) { + $form = new QnashowanswerForm($this, $answer); + $form->show(); + } else { + $this->text(_m('Answer data is missing.')); + } + + $this->elementEnd('div'); + + // @fixme + //$this->elementStart('div', array('class' => 'entry-content')); + */ $this->elementEnd('body'); $this->elementEnd('html'); } else { diff --git a/plugins/QnA/lib/qnashowanswerform.php b/plugins/QnA/lib/qnashowanswerform.php index 665c40857f..f3923698d2 100644 --- a/plugins/QnA/lib/qnashowanswerform.php +++ b/plugins/QnA/lib/qnashowanswerform.php @@ -125,9 +125,7 @@ class QnashowanswerForm extends Form 'answer-' . $this->answer->id ); - - - // $this->out->raw($this->answer->asHTML()); + $this->out->raw($this->answer->asHTML()); } /** From a02da55eac53d85c0e3b50dfa54637597182d361 Mon Sep 17 00:00:00 2001 From: Samantha Doherty Date: Tue, 5 Apr 2011 09:10:20 -0400 Subject: [PATCH 12/74] A little more style for QnA. --- theme/neo/css/display.css | 65 ++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 14 deletions(-) diff --git a/theme/neo/css/display.css b/theme/neo/css/display.css index 1932a4a1a2..5659ca3ae1 100644 --- a/theme/neo/css/display.css +++ b/theme/neo/css/display.css @@ -1248,35 +1248,47 @@ table.profile_list tr.alt { /* QnA specific styles */ -#content .question .entry-title { +#content .question .entry-title, #content .qna-full-question .entry-title { min-height: 1px; } .question div.question-description { font-size: 1em; line-height: 1.36em; + margin-top: 0px; opacity: 1; } -.question fieldset { +.question div.answer-content, .qna-full-question div.answer-content { + opacity: 1; +} + +.question .answer-count, .qna-full-question .answer-count { + display: block; + clear: left; +} + +.question .answer-count:before, .qna-full-question .answer-count:before { + content: '('; +} + +.question .answer-count:after, .qna-full-question .answer-count:after { + content: ')'; +} + +.question fieldset, .qna-full-question fieldset { margin: 0px; } -.question fieldset legend { +.question fieldset legend, .qna-full-question fieldset legend { display: none; } -.question p.answer { - margin-top: 4px; - margin-bottom: 4px; - font-style: italic; -} - -.question label[for=answer] { +.question label[for=answer], .qna-full-question label[for=answer] { display: none; } -.question textarea { +.question textarea, .qna-full-question textarea { width: 100%; height: 42px; padding: 6px 10px 18px 10px; @@ -1288,18 +1300,43 @@ table.profile_list tr.alt { -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); font-size: 1.2em; + margin-top: 15px; margin-bottom: 10px; } -.question #answer-form input.submit { +.qna-full-question textarea { + width: 473px; +} + +.question-description input.submit, .answer-content input.submit { height: auto; padding: 0px 10px; - margin-left: 0px; - margin-bottom: 10px; + margin: 6px 0px 10px 0px; color:#fff; font-weight: bold; text-transform: uppercase; font-size: 1.1em; + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2); + border: 1px solid #d7621c; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background: #FB6104; + background: -moz-linear-gradient(top, #ff9d63 , #FB6104); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff9d63), color-stop(100%,#FB6104)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff9d63', endColorstr='#FB6104',GradientType=0 ); +} + +.question .question-description input.submit:hover, .question .answer-content input.submit:hover { + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6); + background: #ff9d63; + background: -moz-linear-gradient(top, #FB6104 , #fc8035); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FB6104), color-stop(100%,#fc8035)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FB6104', endColorstr='#fc8035',GradientType=0 ); +} + +.question .question-description #answer-form input.submit { + margin-top: 0px; } }/*end of @media screen, projection, tv*/ From fff66e1ebb41d3aa2914aa4084d4ff89e5bc634e Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 5 Apr 2011 11:18:10 -0400 Subject: [PATCH 13/74] move toselector out of