summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-05-21 05:46:38 +0000
committerZach Copley <zach@controlyourself.ca>2009-05-21 05:46:38 +0000
commit07de94ca99c5541b26da9292c4eaa3d80bee3dbe (patch)
treeb539b139198720edbf7859dce59d7187f65f65c5
parent54cd0a2046c417fd072bb4cf79aeda163cf760af (diff)
parent689dd9ee5f81e3e2472e92b10248fecd39638160 (diff)
Merge branch '0.8.x' into fbconnect
-rw-r--r--actions/deletenotice.php4
-rw-r--r--actions/designsettings.php8
-rw-r--r--js/farbtastic/farbtastic.go.js116
-rw-r--r--js/jcrop/jquery.Jcrop.go.js77
-rw-r--r--lib/searchaction.php2
-rw-r--r--plugins/WikiHashtagsPlugin.php109
-rwxr-xr-xscripts/twitterstatusfetcher.php3
-rw-r--r--theme/base/css/display.css4
-rw-r--r--theme/biz/css/base.css5
-rw-r--r--theme/biz/css/display.css4
-rw-r--r--theme/cloudy/css/display.css8
-rw-r--r--theme/default/css/display.css4
-rw-r--r--theme/h4ck3r/css/base.css4
-rw-r--r--theme/h4ck3r/css/display.css4
-rw-r--r--theme/identica/css/display.css4
-rw-r--r--theme/otalk/css/base.css4
-rw-r--r--theme/otalk/css/display.css4
-rw-r--r--theme/pigeonthoughts/css/base.css4
-rw-r--r--theme/pigeonthoughts/css/display.css4
19 files changed, 262 insertions, 110 deletions
diff --git a/actions/deletenotice.php b/actions/deletenotice.php
index 6c350b33a..e733f9650 100644
--- a/actions/deletenotice.php
+++ b/actions/deletenotice.php
@@ -112,8 +112,8 @@ class DeletenoticeAction extends DeleteAction
$this->hidden('token', common_session_token());
$this->hidden('notice', $this->trimmed('notice'));
$this->element('p', null, _('Are you sure you want to delete this notice?'));
- $this->submit('form_action-yes', _('Yes'), 'submit form_action-primary', 'yes');
- $this->submit('form_action-no', _('No'), 'submit form_action-secondary', 'no');
+ $this->submit('form_action-no', _('No'), 'submit form_action-primary', 'no', _("Do not delete this notice"));
+ $this->submit('form_action-yes', _('Yes'), 'submit form_action-secondary', 'yes', _('Delete this notice'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
}
diff --git a/actions/designsettings.php b/actions/designsettings.php
index a85b36a25..315e5a199 100644
--- a/actions/designsettings.php
+++ b/actions/designsettings.php
@@ -140,10 +140,12 @@ class DesignsettingsAction extends AccountSettingsAction
$this->elementEnd('ul');
$this->elementEnd('fieldset');
- $this->submit('save', _('Save'));
- $this->element('input', array('type' => 'reset',
+ $this->element('input', array('id' => 'settings_design_reset',
+ 'type' => 'reset',
'value' => 'Reset',
- 'class' => 'form_action-secondary'));
+ 'class' => 'submit form_action-primary',
+ 'title' => _('Reset back to default')));
+ $this->submit('save', _('Save'), 'submit form_action-secondary', 'save', _('Save design'));
/*TODO: Check submitted form values:
json_encode(form values)
diff --git a/js/farbtastic/farbtastic.go.js b/js/farbtastic/farbtastic.go.js
index e298c1dab..0149eca7d 100644
--- a/js/farbtastic/farbtastic.go.js
+++ b/js/farbtastic/farbtastic.go.js
@@ -1,29 +1,30 @@
+/** Init for Farbtastic library and page setup
+ *
+ * @package Laconica
+ * @author Sarven Capadisli <csarven@controlyourself.ca>
+ * @copyright 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/
+ */
$(document).ready(function() {
- function UpdateColors(e) {
- var S = f.linked;
- var C = f.color;
-
- if (S && S.value && S.value != C) {
- UpdateSwatch(S);
-
- switch (parseInt(f.linked.id.slice(-1))) {
- case 0: default:
- $('body').css({'background-color':C});
- break;
- case 1:
- $('#content').css({'background-color':C});
- break;
- case 2:
- $('#aside_primary').css({'background-color':C});
- break;
- case 3:
- $('body').css({'color':C});
- break;
- case 4:
- $('a').css({'color':C});
- break;
- }
- S.value = C;
+ function UpdateColors(S) {
+ C = $(S).val();
+ switch (parseInt(S.id.slice(-1))) {
+ case 0: default:
+ $('body').css({'background-color':C});
+ break;
+ case 1:
+ $('#content').css({'background-color':C});
+ break;
+ case 2:
+ $('#aside_primary').css({'background-color':C});
+ break;
+ case 3:
+ $('body').css({'color':C});
+ break;
+ case 4:
+ $('a').css({'color':C});
+ break;
}
}
@@ -33,35 +34,52 @@ $(document).ready(function() {
}
function UpdateSwatch(e) {
- $(e).css({
- "background-color": e.value,
- "color": f.hsl[2] > 0.5 ? "#000": "#fff"
- });
+ $(e).css({"background-color": e.value,
+ "color": f.hsl[2] > 0.5 ? "#000": "#fff"});
}
- $('#settings_design_color').append('<div id="color-picker"></div>');
- $('#color-picker').hide();
-
- var f = $.farbtastic('#color-picker', UpdateColors);
- var swatches = $('#settings_design_color .swatch');
-
- swatches
- .each(UpdateColors)
+ function SynchColors(e) {
+ var S = f.linked;
+ var C = f.color;
- .blur(function() {
- $(this).val($(this).val().toUpperCase());
- })
+ if (S && S.value && S.value != C) {
+ S.value = C;
+ UpdateSwatch(S);
+ UpdateColors(S);
+ }
+ }
- .focus(function() {
- $('#color-picker').show();
- UpdateFarbtastic(this);
- })
+ function Init() {
+ $('#settings_design_color').append('<div id="color-picker"></div>');
+ $('#color-picker').hide();
- .change(function() {
- UpdateFarbtastic(this);
- UpdateSwatch(this);
- }).change()
+ f = $.farbtastic('#color-picker', SynchColors);
+ swatches = $('#settings_design_color .swatch');
- ;
+ swatches
+ .each(SynchColors)
+ .blur(function() {
+ $(this).val($(this).val().toUpperCase());
+ })
+ .focus(function() {
+ $('#color-picker').show();
+ UpdateFarbtastic(this);
+ })
+ .change(function() {
+ UpdateFarbtastic(this);
+ UpdateSwatch(this);
+ UpdateColors(this);
+ }).change();
+ }
+ var f, swatches;
+ Init();
+ $('#form_settings_design').bind('reset', function(){
+ setTimeout(function(){
+ swatches.each(function(){UpdateColors(this);});
+ $('#color-picker').remove();
+ swatches.unbind();
+ Init();
+ },10);
+ });
});
diff --git a/js/jcrop/jquery.Jcrop.go.js b/js/jcrop/jquery.Jcrop.go.js
index a0399d540..4e1cbfd1e 100644
--- a/js/jcrop/jquery.Jcrop.go.js
+++ b/js/jcrop/jquery.Jcrop.go.js
@@ -1,39 +1,48 @@
- $(function(){
- var x = ($('#avatar_crop_x').val()) ? $('#avatar_crop_x').val() : 0;
- var y = ($('#avatar_crop_y').val()) ? $('#avatar_crop_y').val() : 0;
- var w = ($('#avatar_crop_w').val()) ? $('#avatar_crop_w').val() : $("#avatar_original img").attr("width");
- var h = ($('#avatar_crop_h').val()) ? $('#avatar_crop_h').val() : $("#avatar_original img").attr("height");
+/** Init for Jcrop library and page setup
+ *
+ * @package Laconica
+ * @author Sarven Capadisli <csarven@controlyourself.ca>
+ * @copyright 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/
+ */
- jQuery("#avatar_original img").Jcrop({
- onChange: showPreview,
- setSelect: [ x, y, w, h ],
- onSelect: updateCoords,
- aspectRatio: 1,
- boxWidth: 480,
- boxHeight: 480,
- bgColor: '#000',
- bgOpacity: .4
- });
- });
+$(function(){
+ var x = ($('#avatar_crop_x').val()) ? $('#avatar_crop_x').val() : 0;
+ var y = ($('#avatar_crop_y').val()) ? $('#avatar_crop_y').val() : 0;
+ var w = ($('#avatar_crop_w').val()) ? $('#avatar_crop_w').val() : $("#avatar_original img").attr("width");
+ var h = ($('#avatar_crop_h').val()) ? $('#avatar_crop_h').val() : $("#avatar_original img").attr("height");
- function showPreview(coords) {
- var rx = 96 / coords.w;
- var ry = 96 / coords.h;
+ jQuery("#avatar_original img").Jcrop({
+ onChange: showPreview,
+ setSelect: [ x, y, w, h ],
+ onSelect: updateCoords,
+ aspectRatio: 1,
+ boxWidth: 480,
+ boxHeight: 480,
+ bgColor: '#000',
+ bgOpacity: .4
+ });
+});
- var img_width = $("#avatar_original img").attr("width");
- var img_height = $("#avatar_original img").attr("height");
+function showPreview(coords) {
+ var rx = 96 / coords.w;
+ var ry = 96 / coords.h;
- $('#avatar_preview img').css({
- width: Math.round(rx *img_width) + 'px',
- height: Math.round(ry * img_height) + 'px',
- marginLeft: '-' + Math.round(rx * coords.x) + 'px',
- marginTop: '-' + Math.round(ry * coords.y) + 'px'
- });
- };
+ var img_width = $("#avatar_original img").attr("width");
+ var img_height = $("#avatar_original img").attr("height");
- function updateCoords(c) {
- $('#avatar_crop_x').val(c.x);
- $('#avatar_crop_y').val(c.y);
- $('#avatar_crop_w').val(c.w);
- $('#avatar_crop_h').val(c.h);
- };
+ $('#avatar_preview img').css({
+ width: Math.round(rx *img_width) + 'px',
+ height: Math.round(ry * img_height) + 'px',
+ marginLeft: '-' + Math.round(rx * coords.x) + 'px',
+ marginTop: '-' + Math.round(ry * coords.y) + 'px'
+ });
+};
+
+function updateCoords(c) {
+ $('#avatar_crop_x').val(c.x);
+ $('#avatar_crop_y').val(c.y);
+ $('#avatar_crop_w').val(c.w);
+ $('#avatar_crop_h').val(c.h);
+};
diff --git a/lib/searchaction.php b/lib/searchaction.php
index e7ad4affd..e74450e11 100644
--- a/lib/searchaction.php
+++ b/lib/searchaction.php
@@ -51,7 +51,7 @@ class SearchAction extends Action
*
* @return boolean true
*/
- function isReadOnly()
+ function isReadOnly($args)
{
return true;
}
diff --git a/plugins/WikiHashtagsPlugin.php b/plugins/WikiHashtagsPlugin.php
new file mode 100644
index 000000000..6d186a5fe
--- /dev/null
+++ b/plugins/WikiHashtagsPlugin.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Plugin to show WikiHashtags content in the sidebar
+ *
+ * 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 Plugin
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 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);
+}
+
+define('WIKIHASHTAGSPLUGIN_VERSION', '0.1');
+
+/**
+ * Plugin to use WikiHashtags
+ *
+ * @category Plugin
+ * @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/
+ *
+ * @see Event
+ */
+
+class WikiHashtagsPlugin extends Plugin
+{
+ function __construct($code=null)
+ {
+ parent::__construct();
+ }
+
+ function onStartShowSections($action)
+ {
+ $name = $action->trimmed('action');
+
+ if ($name == 'tag') {
+
+ $taginput = $action->trimmed('tag');
+ $tag = common_canonical_tag($taginput);
+
+ if (!empty($tag)) {
+
+ $url = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=render',
+ urlencode($tag));
+ $editurl = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=edit',
+ urlencode($tag));
+
+ $context = stream_context_create(array('http' => array('method' => "GET",
+ 'header' =>
+ "User-Agent: " . $this->userAgent())));
+ $html = @file_get_contents($url, false, $context);
+
+ $action->elementStart('div', array('id' => 'wikihashtags', 'class' => 'section'));
+
+ if (!empty($html)) {
+ $action->element('style', null,
+ "span.editsection { display: none }\n".
+ "table.toc { display: none }");
+ $action->raw($html);
+ $action->elementStart('p');
+ $action->element('a', array('href' => $editurl,
+ 'title' => sprintf(_('Edit the article for #%s on WikiHashtags'), $tag)),
+ _('Edit'));
+ $action->element('a', array('href' => 'http://www.gnu.org/copyleft/fdl.html',
+ 'title' => _('Shared under the terms of the GNU Free Documentation License'),
+ 'rel' => 'license'),
+ 'GNU FDL');
+ $action->elementEnd('p');
+ } else {
+ $action->element('a', array('href' => $editurl),
+ sprintf(_('Start the article for #%s on WikiHashtags'), $tag));
+ }
+
+ $action->elementEnd('div');
+ }
+ }
+
+ return true;
+ }
+
+ function userAgent()
+ {
+ return 'WikiHashtagsPlugin/'.WIKIHASHTAGSPLUGIN_VERSION .
+ ' Laconica/' . LACONICA_VERSION;
+ }
+}
diff --git a/scripts/twitterstatusfetcher.php b/scripts/twitterstatusfetcher.php
index 9dfadc760..a61ce1b0d 100755
--- a/scripts/twitterstatusfetcher.php
+++ b/scripts/twitterstatusfetcher.php
@@ -214,7 +214,8 @@ class TwitterStatusFetcher extends Daemon
return;
}
- foreach ($timeline as $status) {
+ // Reverse to preserve order
+ foreach (array_reverse($timeline) as $status) {
// Hacktastic: filter out stuff coming from this Laconica
$source = mb_strtolower(common_config('integration', 'source'));
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index 8bd0ae1c4..edec14163 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -198,9 +198,11 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
#form_search .submit {
diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css
index 22bbced08..0e37a6ee4 100644
--- a/theme/biz/css/base.css
+++ b/theme/biz/css/base.css
@@ -198,11 +198,14 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
+
#form_search .submit {
margin-left:11px;
}
diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css
index a7d360c53..14092d964 100644
--- a/theme/biz/css/display.css
+++ b/theme/biz/css/display.css
@@ -36,7 +36,7 @@ border-color:#aaa;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -65,7 +65,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#002E6E;
}
diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css
index e97889685..12f186a56 100644
--- a/theme/cloudy/css/display.css
+++ b/theme/cloudy/css/display.css
@@ -199,9 +199,11 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
#form_search .submit {
@@ -1267,7 +1269,7 @@ border-color:#aaa;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -1296,7 +1298,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#0084B4;
}
diff --git a/theme/default/css/display.css b/theme/default/css/display.css
index e4b57ef49..fce2e7e29 100644
--- a/theme/default/css/display.css
+++ b/theme/default/css/display.css
@@ -33,7 +33,7 @@ border-color:#aaa;
border-color:#C3D6DF;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -60,7 +60,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#002E6E;
}
diff --git a/theme/h4ck3r/css/base.css b/theme/h4ck3r/css/base.css
index 5060bbb8b..41b3a77e6 100644
--- a/theme/h4ck3r/css/base.css
+++ b/theme/h4ck3r/css/base.css
@@ -189,9 +189,11 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
#form_search .submit {
diff --git a/theme/h4ck3r/css/display.css b/theme/h4ck3r/css/display.css
index c7631a8eb..31d49a58e 100644
--- a/theme/h4ck3r/css/display.css
+++ b/theme/h4ck3r/css/display.css
@@ -38,7 +38,7 @@ color:#ccc;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -65,7 +65,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#0f0;
}
diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css
index 9d625848f..df114417e 100644
--- a/theme/identica/css/display.css
+++ b/theme/identica/css/display.css
@@ -33,7 +33,7 @@ border-color:#aaa;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -60,7 +60,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#002E6E;
}
diff --git a/theme/otalk/css/base.css b/theme/otalk/css/base.css
index 32e8891d2..b39992570 100644
--- a/theme/otalk/css/base.css
+++ b/theme/otalk/css/base.css
@@ -198,9 +198,11 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
#form_search .submit {
diff --git a/theme/otalk/css/display.css b/theme/otalk/css/display.css
index 6c646791b..d2a4719a8 100644
--- a/theme/otalk/css/display.css
+++ b/theme/otalk/css/display.css
@@ -37,7 +37,7 @@ border-color:#aaa;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -64,7 +64,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#8F0000;
}
diff --git a/theme/pigeonthoughts/css/base.css b/theme/pigeonthoughts/css/base.css
index 179719820..08427d3c8 100644
--- a/theme/pigeonthoughts/css/base.css
+++ b/theme/pigeonthoughts/css/base.css
@@ -199,9 +199,11 @@ padding:0 7px;
}
+.form_settings input.form_action-primary {
+padding:0;
+}
.form_settings input.form_action-secondary {
margin-left:29px;
-padding:0;
}
#form_search .submit {
diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css
index 19341ef7f..af31cf78d 100644
--- a/theme/pigeonthoughts/css/display.css
+++ b/theme/pigeonthoughts/css/display.css
@@ -36,7 +36,7 @@ border-color:#aaa;
border-color:#ddd;
}
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
background:none;
}
@@ -63,7 +63,7 @@ div.notice-options input,
.entity_send-a-message a,
.form_user_nudge input.submit,
.entity_nudge p,
-.form_settings input.form_action-secondary {
+.form_settings input.form_action-primary {
color:#000;
}