Commit Graph

12983 Commits

Author SHA1 Message Date
Brion Vibber
de7726dd00 Performance counters: records number of total and unique cache get/set/incr/deletes and queries, and logs to syslog.
$config['site']['logperf'] = true; // to record & dump total hits of each type and the runtime to syslog
$config['site']['logperf_detail'] = true; // very verbose -- dump the individual cache keys and queries as they get used (may contain private info in some queries)

Seeing 180 cache gets on a timeline page seems not unusual currently; since these run in serial, even relatively small roundtrip times can add up heavily.
We should consider ways to reduce the number of round trips, such as more frequently storing compound objects or the output of processing in memcached.
Doing parallel multi-key lookups could also help by collapsing round-trip times, but might not be easy to fit into SN's object model. (For things like streams this should actually work pretty well -- grab the list, then when it's returned go grab all the individual items in parallel and return the list)
2011-01-31 13:12:56 -08:00
Brion Vibber
b896a37da0 Use cachedQuery on File::getAttachments, plus other cleanups:
* dropped unnecessary join on notice table
* made the function actually static, since it makes no sense as an instance variable. The only caller (in AttachmentList) is updated.
2011-01-31 12:22:50 -08:00
Brion Vibber
2a29738dc1 Revert "Session GC fix: save session.modified field as UTC so our comparisons work." - no longer needed with ticket #3020 fix to time zone settings
This reverts commit a7abb2323e.
2011-01-31 11:50:24 -08:00
Brion Vibber
47f31bce47 Merge branch 'master' into testing
Conflicts:
	classes/Profile.php
2011-01-31 11:50:06 -08:00
Brion Vibber
54f7154db8 Fix for ticket #3020: set MySQL session time_zone variable to UTC ('+0:00') so TIMESTAMP column values are comparable against our other UTC timestamp values.
MySQL stores TIMESTAMP columns as UTC, but with a local time interface. (SRSLY?!) DATETIME columns are always bare and assumed to be local time, but we keep only UTC in them.
Forcing the session time_zone to UTC means we won't have to worry as much about what we're sending/receiving in there.

Also will let us remove the hack in master commit a7abb2323e for session tweaks
2011-01-31 11:45:19 -08:00
Brion Vibber
5b8e74f8d4 normalize line endings in shiny/css/display.css 2011-01-31 11:09:20 -08:00
Brion Vibber
9573f725c1 Merge branch '0.9.x' into testing 2011-01-31 11:08:15 -08:00
Brion Vibber
9567308b70 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2011-01-31 11:03:46 -08:00
Brion Vibber
b2f4a02377 Update jquery.form.js to 2.63 -- 2.60 fixed our Opera regression per issue #3015
Thanks to the fine folks at http://forum.jquery.com/topic/regression-form-plugin-ajaxform-cannot-access-xml-return-data-in-opera#14737000001950332 :D
2011-01-31 11:02:29 -08:00
Evan Prodromou
adaad5bb5e Merge branch 'runtime' into testing 2011-01-31 14:02:17 -05:00
Evan Prodromou
ca4bf54131 add a comment to show runtime at the end of a page 2011-01-31 13:59:38 -05:00
Siebrand Mazeland
f41dcb644c Update translator documentation, remove FIXME and add comment. 2011-01-31 18:43:39 +01:00
Siebrand Mazeland
13991f7eb9 * add/update translator documentation.
* remove superfluous whitespace.
* update punctuation on form validation messages.
* L10n tweaks.
* add fixme for missing class documentation.
2011-01-31 18:16:55 +01:00
Siebrand Mazeland
dd5721848f * tag i18n issue.
* add translator documentation.
* remove superfluous whitespace.
2011-01-31 17:12:39 +01:00
Siebrand Mazeland
8f776ec12d * update/add translator documentation.
* fix L10n issues.
* update comments and tag missing documentation on some classes.
* remove superfluous whitespace
*
2011-01-31 16:39:54 +01:00
Siebrand Mazeland
3fc323f8f9 Localisation updates from http://translatewiki.net. 2011-01-31 00:04:03 +01:00
Siebrand Mazeland
9c8b2b567f * Add/update translator documentation.
* L10n tweaks (mostly domain MENU assignments).
* Remove superfluous whitespace.
2011-01-30 19:03:55 +01:00
Siebrand Mazeland
691f374a52 * Add/update translator documentation.
* Update punctuation in form validation message for consistency.
* Remove superfluous whitespace.
2011-01-30 19:01:55 +01:00
Siebrand Mazeland
c29a938895 * update punctuation for translator documentation.
* remove superfluous whitespace.
2011-01-30 18:48:09 +01:00
Siebrand Mazeland
e6e402cefd Localisation updates from http://translatewiki.net. 2011-01-29 23:10:15 +01:00
Siebrand Mazeland
7db24c32d6 * fix some i18n and L10n issues
* update/add translator documentation
* remove superfluous whitespace
2011-01-29 00:33:13 +01:00
Brion Vibber
a7abb2323e Session GC fix: save session.modified field as UTC so our comparisons work.
Had to tweak statusnet.ini to remove the DB_DATAOBJECT_MYSQLTIMESTAMP bitfield constant on session.modified; while it sounds like a useful and legit setting, it actually just means that DB_DataObject silently fails to pass through any attempts to explicitly set the value. As a result, MySQL does its default behavior which is to insert the current *LOCAL* time, which is useless.
This was leading to early GC west of GMT, or late GC east of it. Early GC could at worst destroy all live sessions (whoever's session *triggered* GC is fine, as the session then gets saved right back.)
2011-01-27 12:27:31 -08:00
Brion Vibber
433ec21119 Add $config['sessions']['gc_limit'] to limit how much work we do in each session GC; defaulting to killing 1000 sessions at a time. 2011-01-27 12:08:24 -08:00
Evan Prodromou
1a96a5e695 create privacy settings on new group 2011-01-26 18:48:13 -07:00
Evan Prodromou
2682915b99 events for creating a group 2011-01-26 18:35:01 -07:00
Evan Prodromou
5fee38b025 events for modifying group edit form 2011-01-26 18:21:43 -07:00
Brion Vibber
ea4ebe280a Merge branch 'testing' into filesize 2011-01-26 15:53:05 -08:00
Brion Vibber
54e98ffe22 Fix ticket #3013: MAX_FILE_SIZE hidden fields were incorrectly placed
In order to apply to PHP's POST processing, the MAX_FILE_SIZE field must appear *before* the file upload field. They were incorrectly placed after, where they had no effect on POST processing.
2011-01-26 15:49:57 -08:00
Brion Vibber
625405910f Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2011-01-26 14:59:35 -08:00
Brion Vibber
c65480fb33 Fix ticket #3016: when using non-AJAX form of the ostatus subscription initiation for non-local group joins, show the "group" field instead of a blank "user" field 2011-01-26 14:59:24 -08:00
Brion Vibber
ee9e368aa8 Fix ticket #3016: when using non-AJAX form of the ostatus subscription initiation for non-local group joins, show the "group" field instead of a blank "user" field 2011-01-26 14:57:52 -08:00
Zach Copley
f6cb4ea58d Add IdentiCurse to notice sources 2011-01-26 10:51:44 -08:00
Zach Copley
73011e6344 Add IdentiCurse to notice sources 2011-01-26 10:50:53 -08:00
Zach Copley
c0bb1a5798 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x
* '0.9.x' of gitorious.org:statusnet/mainline: (102 commits)
  Fix for ticket #3010: blocks are now applied against the original poster of repeats.
  Fix XML API output for several profile update methods that returned a <user> entry but didn't set namespaces, causing XML parse failures.
  Fix for ticket #3007: .bmp avatar uploads weren't being properly converted to PNG in all cases
  Bookmark saving robustness fixes
  remove boilerplate from NewMenuPlugin
  Localisation updates from http://translatewiki.net.
  L10n consistency updates in wording and punctuation. Translator documentation added/updated. Superfluous whitespace removed.
  Add translator documentation Fix L10n issues Remove superfluous whitespace
  Add correct punctuation for client exceptions.
  Add correct punctuation for client exception.
  Add correct punctuation for client exception.
  Add email field to Twitter registration form; needed when RequireValidatedEmail plugin is present.
  Add email field on openid registration; needed to register if RequireValidatedEmail plugin is also present.
  Event hook points needed for recaptcha on facebook login form (untested, but should be legit -- same adds as openid & twitter reg forms)
  Event hook points needed to run Recaptcha on Twitter registration
  Fix inconsistent use of 'name' vs 'fullname' in tw_fields member variable
  Add Start/EndRegistrationData event hooks in finishopenidlogin: allows recaptcha to add its captcha display to the form (checked since addition of StartRegistrationTry)
  Ticket #2999: RequireValidatedEmail plugin now also prevents group creation by unvalidated users.
  Localisation updates from http://translatewiki.net.
  Translator comments added L10n updates Remove superfluous whitespace Number parameters in message when two or more are used ClientException and ServerException should end with a period
  ...
2011-01-26 10:50:05 -08:00
Zach Copley
8535f4b073 Add IdentiCurse to notice sources 2011-01-26 10:49:14 -08:00
Brion Vibber
9fcad91d8d Ticket #3014: check upload size limits client-side in supporting browsers
Tested successfully in:
* Firefox 4.0b9
* Safari 5.0.5
* Chrome 8.0.522
2011-01-25 16:26:56 -08:00
Samantha Doherty
1563c95cc3 Wee style update for bookmarks plugin. 2011-01-25 18:33:47 -05:00
Samantha Doherty
8bc296bdbb A few wee fixes for rebase and shiny themes. 2011-01-25 18:32:12 -05:00
Samantha Doherty
0fc46d1629 Rounded corner fixes for base theme. 2011-01-25 18:29:07 -05:00
Brion Vibber
621a7cb36d Merge branch '0.9.x' into testing 2011-01-25 12:57:49 -08:00
Brion Vibber
e35d46b415 Fix for ticket #3010: blocks are now applied against the original poster of repeats.
Previously, if someone you subscribe to repeats a notice by someone you've blocked, you got the message and had to just roll your eyes.
Now blocks are checked against both the current notice's posting profile, and the poster of the original if it's a repeat.
2011-01-24 14:16:15 -08:00
Brion Vibber
0a3c05feb0 Fix XML API output for several profile update methods that returned a <user> entry but didn't set namespaces, causing XML parse failures. 2011-01-24 12:41:30 -08:00
Brion Vibber
820dd293c9 Fix for ticket #3007: .bmp avatar uploads weren't being properly converted to PNG in all cases
Part of the reported issue was previuosly fixed by dc497ed0 (smaller size images being blanked).
This commit fixes the remaining bug with original-size avatars being left as BMP (which could include the 96px size for instance, which could cause problems in browsers not supporting BMP natively)

Added ImageFile::copyTo() as a convenient alias for resizeTo() when not resizing; this performs the BMP/XPM/XBM->PNG conversion if needed, or copies the original file.
Copying instead of using move_uploaded_file() is fine here since:
a) the files are cleaned up on script completion anyway (vs moving to remove it)
b) we're already performing getimagesize() and possibly load/resize on the file before this point (vs needing to move the file into a usable area to work with open_basedir restrictions that prevent working directly with uploaded files in the temp dir; since this would fail anyway, we lose nothing)

ImageFile::preferredType() now works on $this->type instead of asking for one, to make it handier to use from outside. (This is still needed in order for calling code to generate a target filename.)

Recommended for future:
* additional consolidation between the various ways of uploading avatars (touched avatarsettings, grouplogo, and apiaccountupdateprofileimage with similar minor changes)
* consolidate type checks and file naming into Avatar class
2011-01-24 12:22:47 -08:00
Evan Prodromou
c309bbae93 Merge remote branch 'gitorious/testing' into testing 2011-01-24 06:54:09 -07:00
Evan Prodromou
debf4dacf1 change default urlshortener from ur1.ca to internal 2011-01-23 16:51:18 -05:00
Evan Prodromou
570c7b63a2 Add internal URL shortener 2011-01-23 16:49:12 -05:00
Evan Prodromou
ba2128f2d1 make nav look right-ish in shiny 2011-01-23 13:07:47 -05:00
Evan Prodromou
c2d7a08d07 Bookmark saving robustness fixes
First, if the tags box is empty, don't save an empty tag for the notice.

Second, if URL shortening fails, just use the regular URL.
2011-01-23 12:57:20 -05:00
Evan Prodromou
592e2be5e1 Make new menu the default menu
There's a new menu layout in this version of the software. It was
implemented as a plugin in 0.9.x to avoid clashes with existing themes,
but we're going to break that compatibility in this version, so we're just going for it.

This change involved moving all the changes in NewMenuPlugin into the
default code that was calling it. In addition, since
accountsettingsaction and connectsettingsaction differed only by menu,
I removed them, changed all references to them to the settingsmenu, and moved
the combined nav to its own class.

Let's put that episode behind us.

The CSS shim that was loaded by NewMenuPlugin for certain themes and certain actions
was removed.
2011-01-23 12:35:35 -05:00
Evan Prodromou
b72fe00ae3 remove boilerplate from NewMenuPlugin 2011-01-23 12:03:28 -05:00