diff --git a/actions/deletenotice.php b/actions/deletenotice.php index 6c350b33ab..e733f9650a 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 a85b36a254..315e5a199c 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 e298c1dab0..0149eca7d9 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 + * @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('
'); - $('#color-picker').hide(); + function SynchColors(e) { + var S = f.linked; + var C = f.color; - var f = $.farbtastic('#color-picker', UpdateColors); - var swatches = $('#settings_design_color .swatch'); + if (S && S.value && S.value != C) { + S.value = C; + UpdateSwatch(S); + UpdateColors(S); + } + } - swatches - .each(UpdateColors) + function Init() { + $('#settings_design_color').append('
'); + $('#color-picker').hide(); - .blur(function() { - $(this).val($(this).val().toUpperCase()); - }) + f = $.farbtastic('#color-picker', SynchColors); + swatches = $('#settings_design_color .swatch'); - .focus(function() { - $('#color-picker').show(); - UpdateFarbtastic(this); - }) - - .change(function() { - UpdateFarbtastic(this); - UpdateSwatch(this); - }).change() - - ; + 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 a0399d5405..4e1cbfd1e7 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 + * @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 e7ad4affda..e74450e11f 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 0000000000..6d186a5fed --- /dev/null +++ b/plugins/WikiHashtagsPlugin.php @@ -0,0 +1,109 @@ +. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou + * @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 + * @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 9dfadc7606..a61ce1b0d1 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 8bd0ae1c4f..edec141632 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 22bbced08c..0e37a6ee4e 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -198,10 +198,13 @@ padding:0 7px; } -.form_settings input.form_action-secondary { -margin-left:29px; +.form_settings input.form_action-primary { padding:0; } +.form_settings input.form_action-secondary { +margin-left:29px; +} + #form_search .submit { margin-left:11px; diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index a7d360c532..14092d964e 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 e978896856..12f186a560 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 e4b57ef49c..fce2e7e292 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 5060bbb8b7..41b3a77e6e 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 c7631a8ebd..31d49a58e5 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 9d625848fc..df114417ed 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 32e8891d21..b399925700 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 6c646791bf..d2a4719a84 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 1797198200..08427d3c84 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 19341ef7f2..af31cf78d6 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; }