Commit Graph

3612 Commits

Author SHA1 Message Date
Chimo 7cea3f9f11 Add 'statusnet_textarea' backward-compatibility 2015-02-10 10:53:24 -05:00
Chimo d816af9aa9 Prepopulate newnotice from URL arg 2015-02-09 18:06:26 -05:00
Mikael Nordfeldth 8616055959 Can now delete lists/peopletags (thanks MrB)
Reported on https://bugz.foocorp.net/T79
Fix by MrB: https://gist.github.com/mrvdb/0f5d84c9b56c0a390c4a
2015-02-08 23:48:35 +01:00
Mikael Nordfeldth 341ee2c3db Network public feed name fixed (prev. not "Network") 2015-02-06 12:52:42 +01:00
Mikael Nordfeldth a89e91da79 By default, don't allow nick changes for profiles
This goes for both users and groups, since they share nickname namespace.

If you want to enable nickname changes, just add this to your config:

   $config['profile']['changenick'] = true;

This commit should cover all changes in our usual web forms as well as through
the API.
2015-02-04 21:25:14 +01:00
Mikael Nordfeldth 33beb83e86 Variable name updates in apigroupleave.php 2015-02-04 17:30:50 +01:00
Mikael Nordfeldth 9c7f8f1643 Inform API users if notice was deleted. 2015-02-03 21:21:12 +01:00
Mikael Nordfeldth eff3256f59 API notice access was not access restricted 2015-01-31 16:27:21 +01:00
Mikael Nordfeldth d1ac9a4b44 this->target was not available in the listitem 2015-01-30 00:15:55 +01:00
Mikael Nordfeldth acd36698b4 A bunch of clientError that were called as serverError
Calling serverError with a clientError status code (4xx) means it will
automatically default to Internal Server Error (500) which is in the
server error status code range (5xx). That is undesirable.
2015-01-29 23:35:49 +01:00
Mikael Nordfeldth 95751331de Network wide public feed auth check fix 2015-01-29 23:30:13 +01:00
Mikael Nordfeldth 4c14794cae ApiTimelineNetworkPublicAction available now
Feeds added in NetworkpublicAction too.
2015-01-29 23:01:53 +01:00
Mikael Nordfeldth 14e22b2985 Let an administrator set config public/localonly
Available on /panel/access
2015-01-29 21:07:23 +01:00
Mikael Nordfeldth 4daa2e4644 Use 'StartpageAction' to determine what to show on / 2015-01-29 20:48:49 +01:00
Mikael Nordfeldth a5d27d9ce7 /main/all will give a network-wide public stream
Qvitter had implemented this as a "PublicAndExternal" stream, but
I figured we might as well put it into the GNU social core.
2015-01-28 20:25:39 +01:00
Mikael Nordfeldth 12058c30b4 Managed_DataObject->updateWithKeys throws its own exception 2015-01-25 12:54:08 +01:00
Mikael Nordfeldth 4917a422a1 updateKeys -> updateWithKeys (w/ functionality) 2015-01-25 12:07:26 +01:00
Mikael Nordfeldth 132ac624a2 Attachment_thumbnailAction is a ManagedAction (doPreparation) 2015-01-25 11:23:04 +01:00
Mikael Nordfeldth 4b65275e41 AttachmentAction is a ManagedAction, don't implement handle()
This also gives us more freedom in Attachment_thumbnailAction for example
2015-01-25 02:25:28 +01:00
Mikael Nordfeldth ce8389443b Let's not risk mixing two object types up 2015-01-25 02:24:41 +01:00
Mikael Nordfeldth ef0a703bdd No need to pre-generate thumbnails anymore
Qvitter fixed their queet-expand-view! By not making thumbnails on upload
we'll save a bit of time and resources, saving the post much quicker.
2015-01-24 11:38:10 +01:00
Mikael Nordfeldth 09de2a17b5 Hack to force thumbnail generation directly on upload
Remove this when we know that third party frontends like Qvitter have
improved attachment handling.
2015-01-23 14:52:02 +01:00
Mikael Nordfeldth 6f410eda5c scoped instead of auth_user->getProfile() 2015-01-23 14:32:39 +01:00
Mikael Nordfeldth fac9f4e545 Merge branch 'nightly' of gitorious.org:social/mainline into nightly 2015-01-21 23:45:49 +01:00
Mikael Nordfeldth ce9d18c29d Only check if a nickname exists if site is non-private 2015-01-21 22:08:21 +01:00
Mikael Nordfeldth fcc97c87d1 Only check if a nickname exists if site is non-private 2015-01-21 22:07:41 +01:00
Mikael Nordfeldth 8b585ff647 MediaFile upload simplifying 2015-01-21 17:39:48 +01:00
Mikael Nordfeldth 305c9f33a7 Registration coding cleanup
Mainly there was an Undefined variable: code in apiaccountregister.php
2015-01-18 13:06:12 +01:00
Mikael Nordfeldth 98afab74e2 Bad variable reference (needed $this->) 2015-01-18 12:56:17 +01:00
Mikael Nordfeldth 1d339bb118 Better test to see if uploaded media exists 2015-01-13 13:22:23 +01:00
Mikael Nordfeldth bc51c6b64f Those variables were set for a reason
The ->_subscription variable etc. were set because they were used later.
2015-01-13 12:56:56 +01:00
Mikael Nordfeldth 65c540478e newnotice action always returns the notice's URL
Maybe could return conversation URL, but this will do for now.
Courtesy of the Javascript haters.
2015-01-12 12:13:34 +01:00
Mikael Nordfeldth c7df5594d0 Simplified by adding an abstract AtompubAction 2015-01-12 03:15:41 +01:00
Mikael Nordfeldth 930b09677c Actually use the PrimaryNoticeList in actions 2015-01-08 20:29:09 +01:00
Mikael Nordfeldth 370341ce31 Don't show notice form navs on newnotice action 2015-01-08 17:33:09 +01:00
Mikael Nordfeldth 48680942fd Avoid undefined variables. 2014-12-06 19:56:21 +01:00
Mikael Nordfeldth e006b73505 Revert "Report a 404 not found if no posts found for User timeline"
This reverts commit 5295e8d4de.

Just reply with an empty timeline...
2014-12-04 19:45:27 +01:00
Hannes Mannerheim b81857656f delete groups from groups directory, for admins 2014-12-02 15:31:27 +01:00
Mikael Nordfeldth 5295e8d4de Report a 404 not found if no posts found for User timeline 2014-11-22 12:29:13 +01:00
Mikael Nordfeldth d1b10ee92b Don't define a variable in a function call 2014-11-22 12:26:51 +01:00
Mikael Nordfeldth 046d070ad4 MessageCommand moved to DirectMessage plugin 2014-11-07 16:23:34 +01:00
Mikael Nordfeldth 68143ff916 DirectMessage moved into a plugin, not done yet
We still have to move some API calls into the new plugin.
2014-11-07 15:53:35 +01:00
Mikael Nordfeldth 7ea067a0dc Notice_source checks in better code style 2014-11-05 19:44:22 +01:00
Roland Haeder db704b5d10 Fixed type-hints + added assert + method getGroup().
Signed-off-by: Roland Haeder <roland@mxchange.org>
2014-10-25 14:26:18 +02:00
Hannes Mannerheim 54e27bc30c shows which user we are confirming to delete 2014-10-20 16:25:42 +02:00
Mikael Nordfeldth 56b07d84c5 AtomPub missing georss namespace merge from chimo 2014-08-24 13:08:41 +02:00
chimo e3e076a935 Adds missing georss xmlns in subscriptions AtomPub
Fixes 'unbound prefix: georss' validation issue.
2014-08-13 00:45:34 -04:00
Mikael Nordfeldth 9a192473d5 declared "next_id" used to set the max_id for next link 2014-08-08 11:35:38 +02:00
Mikael Nordfeldth 2766c2aeec User timeline ActivityStreams output now has paging data 2014-08-07 22:40:55 +02:00
Mikael Nordfeldth 55db74291c Using empty on a function return value (thanks mrvdb)
Source: https://gist.github.com/mrvdb/0b49dd3c580bcfbe1358
2014-07-15 18:15:36 +02:00
Mikael Nordfeldth eb955fe629 "Notice posted" message in Ajax title for NewnoticeAction 2014-07-14 17:11:54 +02:00
Mikael Nordfeldth ae62b91940 Unifying HTML stripping functions to common_strip_html 2014-07-14 13:52:23 +02:00
Mikael Nordfeldth 0a20abf1d8 Email notify-on-fave moved to Profile_prefs (run upgrade.php) 2014-07-13 19:46:40 +02:00
Mikael Nordfeldth 933bf0b026 Start and End EmailSaveForm events now take a scoped profile 2014-07-13 15:42:15 +02:00
Mikael Nordfeldth c8873de08b Start and End EmailFormData events include current profile 2014-07-13 15:33:44 +02:00
Mikael Nordfeldth 9ce06f3e82 Adapt NewnoticeAction to latest Form- and ManagedAction 2014-07-06 13:10:22 +02:00
Mikael Nordfeldth 182605cb6a TagAction extends ManagedAction 2014-07-04 19:32:57 +02:00
Mikael Nordfeldth 4b40d6bb2a TagprofileAction fiddled with, now doesn't require OStatus override
But it still doesn't quite work properly, so a lot of work is necessary for this.
2014-07-03 14:02:21 +02:00
Mikael Nordfeldth 2e77cbfa86 FormAction updates, also fixing NoticeForm CSS 2014-07-03 14:01:12 +02:00
Mikael Nordfeldth 138d26d488 Favorite "aside"-sections moved, also small fixes left from before
Action now has 'isAction' which compares the loaded Action with names
of classes in an array (added without the 'Action') to its own type.
2014-06-28 16:09:46 +02:00
Mikael Nordfeldth 7e597ea7cc More Favorite pluginification (favecount, cache, menus(favecount, cache, menus)) 2014-06-28 14:03:30 +02:00
Mikael Nordfeldth 7642f008fb Bad error message in atompubmembershipfeed 2014-06-28 12:58:24 +02:00
Mikael Nordfeldth fcdd061b4f pluginified most of hasFave, getFaves and related calls
The code is now more event-driven when it comes to rendering notices
and their related HTML elements, since we can't have direct calls from
core to a plugin.

lib/activitymover.php has a function to move a Favorite activity which
will not happen now. The move must be pluginified and performed as an
event which plugins can catch on to.
2014-06-27 14:09:02 +02:00
Mikael Nordfeldth db7cc7fa75 Favorite functionality put into plugin (not done yet)
Now we have to fix any code in the core which directly uses the Fave class
or any other favorite stuff, since it is pluginised and thus might not be
available on some installations.
2014-06-24 15:58:53 +02:00
Mikael Nordfeldth 53fb39a1d0 Nicknames in subscriptions list 2014-06-24 01:56:55 +02:00
Mikael Nordfeldth 414a95a784 Initial move towards microformats2
No validation has been attempted yet. Lots of changes left. This
is visibly not (very) different from the previous CSS layout. But
some simplifications have been made.

Might cause issues with local changes to themes and CSS. Also maybe
javascript which depends on certain legacy microformats elements.

The move to microformats2 is motivated by the announcement that all
microformats should be migrated to version 2, as of 2014-06-20 at:
http://microformats.org/2014/06/20/microformats-org-turns-9-upgrade-to-microformats2
2014-06-22 17:11:04 +02:00
Mikael Nordfeldth e4f1c77d6b showAvatar functions deduplicated into Widget class 2014-06-21 23:25:50 +02:00
Mikael Nordfeldth 79824a3625 Could not update avatar due to Bad Thumbnail parameters 2014-06-17 12:48:10 +02:00
Mikael Nordfeldth 5a3d74d9a8 UseFileAsThumbnailException (helps support GIFs) 2014-06-17 12:15:11 +02:00
Mikael Nordfeldth d596513e39 Stronger typing for NoticeListItem and so 2014-06-02 00:20:27 +02:00
Mikael Nordfeldth eb7f964598 Modernising subscribers/subscriptions to use $this->scoped/target
They extend GalleryAction from ProfileAction, where $this->target is set.
2014-05-28 17:00:34 +02:00
Mikael Nordfeldth 49fa34e234 Make Profile::fromUri use UnknownUriException 2014-05-26 15:05:14 +02:00
Mikael Nordfeldth d7c40e77b2 Show more links work with AJAX-retrieved HTML
Attachment_ajaxAction has been removed since AttachmentAction handles
AJAX calls splendidly.
2014-05-19 00:56:21 +02:00
Mikael Nordfeldth b0cc9292b1 Notice->repeat() function takes Profile as argument now 2014-05-18 21:03:10 +02:00
Mikael Nordfeldth 0ddc2fc417 RepeatAction extends FormAction (and ManagedAction) 2014-05-18 20:50:15 +02:00
Mikael Nordfeldth b48e3a22bf AttachmentAction extends to ManagedAction
Also moved AttachmentListItem and its extended class Attachment are moved
into separate files (autoloaded from lib/).
2014-05-18 12:59:33 +02:00
Mikael Nordfeldth e086ef3a84 ProfileAction derivatives somewhat migrated to ManagedAction 2014-05-12 22:41:05 +02:00
Mikael Nordfeldth cd3cff451f ConversationTree is now a plugin (not oldschool setting)
Conversation trees works pretty bad with the current layout, javascript
etc. So it's best if we separate it and work on it as a side-project. The
oldschool settings are currently being deprecated (or broken out like this).

I'll wait with removing User preferences for oldschool conversation tree,
since that might be reusable data. But I guess it will go in the near future.
2014-05-12 11:51:11 +02:00
Mikael Nordfeldth 1a81188355 Use an Event to present notices conversations 2014-05-12 11:03:21 +02:00
Mikael Nordfeldth f9481467f8 ConversationAction extends from ManagedAction
Also added some of the nifty autoconfiguration, such as $this->scoped,
to ConversationAction for increased code consistency.
2014-05-11 21:11:09 +02:00
Mikael Nordfeldth be14634c5f ConversationRepliesAction removed, Conversation is enough 2014-05-11 21:05:25 +02:00
Mikael Nordfeldth ce23c68d1c FileAction removed (we have AttachmentAction).
It seems it was only used to get a _single_ file attachment from
the posted notice, with no possibility to get multiple attachments.

If one fetches metadata about attachments for the notice, we have
enough data there to fulfill anyone's fetching dreams.
2014-05-10 12:29:34 +02:00
Mikael Nordfeldth c075b9f730 Removed 'bookmarklet' since we have Bookmark plugin 2014-05-10 02:50:56 +02:00
Mikael Nordfeldth 1776c90cb9 Moved oEmbed stuff out to a plugin (Oembed). 2014-05-06 23:32:13 +02:00
Mikael Nordfeldth 820a21e16d parent::handlePost() in CancelsubscriptionAction 2014-05-06 13:26:30 +02:00
Mikael Nordfeldth 10cbf8c45e Shorter, cleaner, smarter CancelsubscriptionAction 2014-05-06 00:21:54 +02:00
Mikael Nordfeldth 7028c16d1c Cleaning up FavorAction 2014-05-05 22:49:34 +02:00
Mikael Nordfeldth 4774a25040 Link notice posted time to local representation
Notice class got a 'getLocalUrl' function.
2014-05-01 14:28:53 +02:00
Mikael Nordfeldth b77a09fdee Notice URIs are not necessarily URLs.
Let's use getUrl() for URL retrieval. May throw exceptions, but
only if it's a Notice that cannot be linked like that anyway.
2014-04-30 20:44:23 +02:00
Mikael Nordfeldth 34b570352f Fix Direct Message functionality. 2014-04-29 20:37:58 +02:00
Mikael Nordfeldth 5fd6053220 Code cleanup and enabling User object's etc. getUri() 2014-04-28 14:08:42 +02:00
Mikael Nordfeldth 37ce1f4766 Better fallback on UnsupportedMediaException 2014-04-28 12:12:06 +02:00
Mikael Nordfeldth c862b3f355 Redirect from Attachment_thumbnailAction
Noone should trust an <img/> tag delivered like that anyway.
2014-04-21 21:19:45 +02:00
Mikael Nordfeldth d59eb5e184 Dynamically generate thumbnails (see full text)
The File object now stores width and height of files that can
supply this kind of information. Formats which we can not read
natively in PHP do not currently benefit from this. However an
event hook will be introduced later.

The CreateFileImageThumbnail event is renamed to:
CreateFileImageThumbnailSource to clarify that the hooks should not
generate their own thumbnails but only the source image. Also it now
accepts File objects, not MediaFile objects.

The thumbnail generation is documented in the source code. For
developers, call 'getThumbnail' on a File object and hope for the best.

Default thumbnail sizes have increased to be more appealing.
2014-04-21 20:46:11 +02:00
Mikael Nordfeldth 7f3611c51c use intval() instead of floor() for int return type 2014-04-21 19:32:08 +02:00
Mikael Nordfeldth b3bf036975 Preparing File for dynamic thumbnail generation. 2014-04-21 12:33:26 +02:00
Mikael Nordfeldth 7ca6597c7f Missing semi colon in showNotice class. 2014-04-19 22:20:45 +02:00
Mikael Nordfeldth 132be99506 Improve ShownoticeAction remote redirect code 2014-04-19 22:13:48 +02:00
Mikael Nordfeldth 454a9bc1c4 Use getUrl() instead of ->url in OembedAction 2014-04-19 22:05:44 +02:00
Mikael Nordfeldth 418b3c3c53 Some files got updated coding style
Actions have $this->scoped as the current profile which we can gladly
replace all the $cur=common_current_user() with.

And we want the prepare/handle functions to be protected. Plus only
the prepare function uses $args (which _must_ be an array).
2014-04-15 10:49:20 +02:00
Mikael Nordfeldth c00491cd7a Cosmetic changes to common_redirect, clientError, serverError
Since these functions exit (or throw exception) after running, there
is no need to have a 'return' statement or similar afterwards.
2014-03-10 00:25:57 +01:00
Mikael Nordfeldth acbe94936f common_redirect and clientError exits, so refactor
One Event would never be called, and other stuff were redundant clauses.
2014-03-10 00:24:32 +01:00
Mikael Nordfeldth 5c34369460 Don't use PEAR MIME lib when we have PECL fileinfo 2014-03-08 01:20:08 +01:00
Mikael Nordfeldth 0bc7d9c6c6 We sent a User object instead of Profile to InboxNoticeStream (thanks postblue) 2014-03-07 01:27:14 +01:00
Mikael Nordfeldth 4b2a66ed29 New mechanism for "all" feed (InboxNoticeStream)
Also cleaned up and made typing stricter for the stream, so only
profiles can be submitted. This reasonably also means we can create
"inbox" or "all" streams for foreign profiles as well using the same
stream handler (but of course only for messages we already know about).

To avoid looking up posts for a long time in a large notice database,
the lookback period for the inbox is no longer than the profile creation
date. (this matches the behaviour of Inbox)

Inbox class can probably be removed now.
2014-03-06 04:18:54 +01:00
Mikael Nordfeldth 4baaf7274c Spiffing up all.php and making it more profile:y 2014-03-05 01:17:34 +01:00
Mikael Nordfeldth fc047bd6e6 Minor code cleanup with group related actions (thanks brw12)
Originated from brw12 who noticed an incorrect variable name used in
an error message in actions/apigroupjoin.php:109
2014-03-01 12:01:17 +01:00
Mikael Nordfeldth 63102950b2 Compare to profile id of group, for backward compatibility 2014-02-23 21:28:52 +01:00
Mikael Nordfeldth 5487c596fc Remove callback sneakery by StatusNet 2014-02-23 14:57:12 +01:00
Mikael Nordfeldth 915d329b5a updating prepare and handle 2014-01-01 20:30:30 +01:00
Mikael Nordfeldth 4ab56f34dd Previous edit made translation notes incompatible 2014-01-01 20:09:11 +01:00
Mikael Nordfeldth df43684196 apparently not only regex 'https?' urls are sent 2014-01-01 19:47:49 +01:00
Mikael Nordfeldth 3552bf4d94 No pagination when no groups shown... :) 2013-11-04 16:57:30 +01:00
Mikael Nordfeldth f110fc5c9a Using GNUSOCIAL_VERSION instead of STATUSNET_VERSION 2013-11-01 13:51:41 +01:00
Mikael Nordfeldth 810495708d Version name strings updated, StatusNet only retained for copyright 2013-10-30 16:37:13 +01:00
Mikael Nordfeldth 8dafce34c3 LoginAction somewhat converted to FormAction 2013-10-30 12:23:10 +01:00
Mikael Nordfeldth 9b6633698c Group discovery from text functions polished
Also removed the entirely unused saveGroups function.

Now avoiding multiGet and using listFind in Profile->getGroups()
so we don't have to deal with ArrayWrapper.
2013-10-29 13:40:14 +01:00
Mikael Nordfeldth f8b49e69d0 Protected function prepare with array $args defaulting to array() 2013-10-29 10:26:46 +01:00
Mikael Nordfeldth 23a6b4595f Reworked the ActivityContext->attention structure
Removing Evan's obscure attentionType solution and directly using the attention array
2013-10-28 22:21:14 +01:00
Mikael Nordfeldth fcba540a14 Removed legacy OMB. Use OStatus for remote profiles. 2013-10-28 16:22:09 +01:00
Mikael Nordfeldth 362b6ad2fc ForceGroup and some qvitter API stuff still used staticGet 2013-10-25 13:20:53 +02:00
Mikael Nordfeldth a38ed0057a Moved jbfavre's Twitter card support to Twitter plugin
It was causing problems with an undefined TWITTER_SERVICE constant.
2013-10-22 20:35:03 +02:00
Mikael Nordfeldth a6c52c5ca7 Prepare the RepeatAction for modernisation (more OOP) 2013-10-21 23:27:09 +02:00
Mikael Nordfeldth 145fbf1130 Move nick updating of User entry to Profile->update()
Also, timezone and language in User table weren't indexes. So no need
to do them separately.
2013-10-17 16:38:42 +02:00
Mikael Nordfeldth 274b70784f When updating a User_group nickname, correlate Local_group and Profile
...no need to make a separate call to Local_group's setNickname all the time,
or a bunch of redundant code for the Profile table.

Next up is User->update()...
2013-10-17 13:49:20 +02:00
Mikael Nordfeldth 6ed66d9c76 Local_group and User are now assumed to be in same namespace 2013-10-17 01:27:01 +02:00
Mikael Nordfeldth db7ef52d13 Better use of Nickname validation functions
Nickname verifications on registration and updates for profiles (not yet
groups) have been improved.

Minor bugs in RegisterAction were also fixed, where multiple forms would
be outputed because the function did not return after showForm(). This
will be solved more permanently with throwing exceptions in the future.
2013-10-16 15:38:54 +02:00
Mikael Nordfeldth 080352b646 Minor changes to ApiCheckNicknameAction, syntax and exception handling mostly 2013-10-16 13:43:10 +02:00
Mikael Nordfeldth 29d0871e5a Making many of the API actions more consistent with coding style
clientError and serverError exit after they're done so no need for
break or return. Also, $this->format is default.

We also got rid of the incredibly verbose version of $this->isPost()
which was spread all over the place.

Not all of this cleaning up is done yet.
2013-10-15 03:07:40 +02:00
Mikael Nordfeldth ffdbd8d729 Now using common_local_url properly 2013-10-15 01:20:21 +02:00
Mikael Nordfeldth f46d675a20 GNU social is with a minor s. 2013-10-15 00:20:36 +02:00
Mikael Nordfeldth 9be368006c Naming stuff GNUsocial rather than StatusNet 2013-10-15 00:19:03 +02:00
Mikael Nordfeldth 6d739789f6 protected handle function without args for Action 2013-10-14 14:00:12 +02:00
Mikael Nordfeldth 390556d932 Remote Profile Action from ModPlus now more generic 2013-10-08 21:08:02 +02:00
Mikael Nordfeldth 1d8b19fe54 Let's not limit qvitter stuff to 'json' requests
Also, cleanup and report errors properly when we try unsupported media types.
2013-10-07 20:54:25 +02:00
Mikael Nordfeldth cf0570fc99 Cleaning up clientError and serverError 2013-10-07 19:56:45 +02:00
Mikael Nordfeldth ece8ba8ea4 Calling parent::handle in ApiCheckHubAction 2013-10-07 14:51:23 +02:00
Mikael Nordfeldth 8912cdc7a4 Validate::uri replaced with filter_var for HTTP[S] URL checks
Also, a bug in checking the OAuth callback URL for validity was fixed,
where it referenced the wrong variable when going through form data.
2013-10-07 14:46:09 +02:00
Mikael Nordfeldth 2c0790be54 Let the SearchEngine take care of the search, and showJsonTimeline is good enough for now
I bet JSONSearchResultsList is a good idea, but we have no immediate use of it right now.

And it's better if the SearchEngine can take care of all that jazz.
2013-10-06 23:09:57 +02:00
Mikael Nordfeldth 87370f0cb1 URL shortening can now be disabled for the 'maxurllength'
Also, URL shortening now consistently uses 'maxurllength'...
2013-10-06 22:35:49 +02:00
Mikael Nordfeldth 34a6624452 Qvitter API changes (thanks hannes2peer)
I implemented changes from quitter.se's new API that their front-end qvitter
uses, https://github.com/hannesmannerheim/qvitter/blob/master/api-changes-1.1.1/CHANGES

However I left out the URL shortening commens, since I believe whatever behaviour
they experienced that caused them to implement this was a bug (or many) and should
be fixed in their proper areas and that shortening should not be entirely left
out in API calls.
2013-10-06 21:51:50 +02:00
Mikael Nordfeldth fb94a16217 Moved Avatar retrieval into Avatar class
Backwards compatible functions are still in Profile class.
2013-10-06 15:55:06 +02:00
Mikael Nordfeldth 78f9629bf3 Moved shareLocation preference check to Profile class 2013-10-06 13:38:09 +02:00
Mikael Nordfeldth cc34bb48c7 OAuth related syntax fixes, nothing big
Making better use of class autoloading too.
2013-10-06 12:43:18 +02:00
Mikael Nordfeldth 48da97f204 MediaFile code improvements, preparing to implement multi-attachments
Maybe in the future we can use this for anonymous file uploads too?
With some kind of anonymous/pseudonymous profile. That'd be neat.
2013-10-05 18:47:45 +02:00
Mikael Nordfeldth 39f43e415d Do not name anything getOriginal (because DB_DataObject calls that)
Avatar->getOriginal has been renamed getUploaded
Notice->getOriginal has been renamed getParent
2013-10-02 15:01:11 +02:00
Mikael Nordfeldth 7979918ba9 Various minor Avatar fixes, but pretty necessary.
One typing thing. And a missed exception case.

Get src from displayUrl() instead of url for example.
2013-10-02 14:49:01 +02:00
Mikael Nordfeldth 1d46ca45d1 PHP Notice: Undefined variable: logo
It was reported in actions/apitimelinetag.php on line 142
2013-10-01 17:07:16 +02:00
Mikael Nordfeldth b0dfc70a54 Properly unlink all old avatars when deleting/uploading a new
We're also now using $config['image']['jpegquality'] to determine the
quality setting for resized images.

To set Avatar max size, adjust $config['avatar']['maxsize']

The getAvatar call now throws exceptions too. Related changes applied.
Now let's move Profile->avatarUrl to the Avatar class!
2013-10-01 17:00:10 +02:00
Mikael Nordfeldth a23c4aa236 Avatar resizing improvements and better code reuse
* getOriginal added to Avatar class
    This is a static function that retrieves the original avatar in a leaner
    way than Profile->getOriginalAvatar() did (see below).
    This will throw an Exception if there was none to be found.

* getProfileAvatars added to Avatar class
    This gets all Avatars from a profile and returns them in an array.

* newSize added to Avatar class
    This will scale an original avatar or throw an Exception (originally from
    Avatar::getOriginal) if one wasn't found.

* deleteFromProfile added to Avatar class
    Deletes all avatars for a Profile. This makes the code much smarter when
    removing all avatars from a user.
    Previously only specific, hardcoded (through constants) sizes would be
    deleted. If you ever changed lib/framework.php then many oddsized avatars
    would remain with the old method.

* Migrated Profile class to new Avatar::getOriginal support
    Profile class now uses Avatar::getOriginal through its own
    $this->getOriginalAvatar and thus remains backwards compatible.

* Updating stock GNU Social to use Avatar::getOriginal
    All places where core StatusNet code used the
    $profile->getOriginalAvatar, it will now useAvatar::getOriginal with
    proper error handling.

* Updated Profile class to use Avatar::newSize
    When doing setOriginal, the scaling will be done with the new method
    introduced in this merge.
    This also edits the _fillAvatar function to avoid adding NULL values to
    the array (which causes errors when attempting to access array entries as
    objects). See issue #3478 at http://status.net/open-source/issues/3478
2013-09-30 22:23:03 +02:00
Mikael Nordfeldth a0e107f17f Implemented WebFinger and replaced our XRD with PEAR XML_XRD
New plugins:
* LRDD
    LRDD implements client-side RFC6415 and RFC7033 resource descriptor
    discovery procedures. I.e. LRDD, host-meta and WebFinger stuff.

    OStatus and OpenID now depend on the LRDD plugin (XML_XRD).

* WebFinger
    This plugin implements the server-side of RFC6415 and RFC7033. Note:
    WebFinger technically doesn't handle XRD, but we serve both that and
    JRD (JSON Resource Descriptor), depending on Accept header and one
    ugly hack to check for old StatusNet installations.

    WebFinger depends on LRDD.

We might make this even prettier by using Net_WebFinger, but it is not
currently RFC7033 compliant (no /.well-known/webfinger resource GETs).

Disabling the WebFinger plugin would effectively render your site non-
federated (which might be desired on a private site).

Disabling the LRDD plugin would make your site unable to do modern web
URI lookups (making life just a little bit harder).
2013-09-30 22:04:52 +02:00
Joshua Judson Rosen 90858804bc Allow the hostmeta to indirect from one domain to another.
e.g.: rozzin@hackerposse.com => rozzin@status.hackerposse.com.
2013-09-29 23:13:45 +02:00
Mikael Nordfeldth 858d9cc3c4 maxNoticeLength test for url-shortening failed on maxContent==0
maxContent==0 implies that a notice text can be infinitely long, but
this value was directly transferred to maxNoticeLength, where 0 was
tested if it was longer than the notice length - which of course always
was false.

This commit fixes the problem for infinite length notices that always
got shortened.
2013-09-25 22:48:32 +02:00
Mikael Nordfeldth 64df40e409 Filling in missing endHTML calls for Action AJAX
This completes 1c6f9df80e where a lot
of other functions were fixed (by conforming to startHTML and endHTML)
2013-09-24 02:32:17 +02:00
Mikael Nordfeldth 1c6f9df80e PHP5.5 fix: Better use of startXML for Action classes (mostly AJAX)
I had a problem with PHP5.5 that caused ajax responses to be empty. This
fixes it, as the problem was related to pretty inconsistent calling to
headers, XMLWriter::startDocument etc. etc.
2013-09-24 01:18:33 +02:00
Marcel van der Boom e9f2a1847d Wrong call signature used for Event::handle
Call needs 2nd parameter to be array.
2013-09-23 14:43:44 +02:00
Mikael Nordfeldth 5f1fea1488 FavorAction upgraded to extend FormAction
Includes some minor changes to other things as well, such as the session
token input element now having the same 'name' attribute as everyone else.
(it still retains a 'token-'+noticeid 'id' attribute for clientside JS)
2013-09-23 13:06:09 +02:00
Mikael Nordfeldth 63306081bc Subscription "get by" functions now don't use ArrayWrappers
They were getting in the way of some strict-typing stuff.
2013-09-21 18:38:14 +02:00
Mikael Nordfeldth 93e878d7ca Make better use of Subscription class
removed lib/subs.php as it was essentially only a wrapper for Subscription
2013-09-19 17:29:05 +02:00
Mikael Nordfeldth c3001ff82b url shortening fixes for api config and not ur1.ca
Will have to change the 'maxnoticelength' code to stop shortening ALL
links if the setting for infinitely long notices is configured.
2013-09-19 01:11:47 +02:00
Mikael Nordfeldth 31bace8cfd updated and moved jquery-jcrop (no longer .min.js)
This won't run properly if other scripts stop javascript execution before
it's time to crop (such as in the Bookmark plugin, which when writing this
hasn't been migrated to Jquery 2.x - so it stops on a '.die' call).

Some images were cleaned up from the theme/base/images/illustrations too.
2013-09-14 13:31:16 +02:00
Jean Baptiste Favre f0d86cdb64 Add 'twitter:title' meta tag support. 2013-09-10 11:16:34 +02:00
Jean Baptiste Favre ade8c6992e Twitter cards implementation. Currently only supports 'photo' cards. 2013-09-10 11:16:27 +02:00
Mikael Nordfeldth a9c4bcd71f Removing unnecessary require_once lines (autoload!) 2013-09-09 23:06:56 +02:00
Mikael Nordfeldth 747fe9d59b Tidying up getUser calls to profiles and some events
getUser calls are much more strict, and one place where this was found was
in the (un)subscribe start/end event handlers, which resulted in making the
Subscription class a bit stricter, regarding ::start and ::cancel at least.
Several minor fixes in many files were made due to this.

This does NOT touch the Foreign_link function, which should also have a more
strict getUser call. That is a future project.
2013-09-09 23:03:34 +02:00
Mikael Nordfeldth c5bf6cb05e Using a bit more of $this->scoped (Action parent class)
$this->scoped is the currently active profile, which is intended
to replace the $user object in the long run...
2013-09-09 20:45:20 +02:00
Mikael Nordfeldth b2a0aa20bf NewapplicationAction converted to FormAction
Cutting down on a bunch of redundant code. We're reusing a lot of stuff
from FormAction and Action now instead of having copies of code all over.
2013-09-02 12:13:46 +02:00
Mikael Nordfeldth f0e967fefd needLogin renamed checkLogin and made a property
Action extended classes now can set 'needLogin' as a protected property,
which is defaulted to 'false'. However, FormAction defaults this to 'true'
because most of the form actions will require a current login to be valid.

NewgroupAction, NewmessageAction, NewnoticeAction are all affected by this
commit and in the future we will migrate each potential formaction to the
proper class parent tree. :)
2013-09-02 11:58:47 +02:00
Mikael Nordfeldth e5e3aeb4e6 newmessage (and Message class) fixed for FormAction
Also added a needLogin function to the Action class, which will do
redirect to login page with proper returnto setting.
2013-09-02 11:05:30 +02:00
Mikael Nordfeldth 89b10666bb IMPORTANT: parent::handlePost() in NewnoticeAction
otherwise we don't do csrf checking etc...
2013-09-02 11:05:21 +02:00
Mikael Nordfeldth 0612e5ec87 NewnoticeAction converted to extend FormAction
There are still several improvements which can be made, such as not
having an entirely separate setup of ajax form functions. Instead
those should be implemented in FormAction. But at least now we got
rid of the redundant code use in prepare/handle.
2013-09-01 20:56:35 +02:00
Mikael Nordfeldth 83000f6f5e Proper definition of $args array in NewgroupAction->prepare
Also, there is no need to do 'return' after throwing a ClientError
Exception. And we'll use the Action->clientError for logging benefits
until the error handling is properly done all the way to backend.
2013-09-01 19:44:09 +02:00
Mikael Nordfeldth cfa699e445 NewgroupAction converted to extend FormAction
Had to change Action function 'prepare' to 'protected', as you can't
(of course) protect something that's been public in a parent class. The
other way around seems fine for PHP... Eventually all actions will have
protected 'prepare' (use execute/run)

A feature of the previously fixed initialization of Action classes, is
that we now have $this->scoped which is the current profile in use. As
of now that is always a local User, except the corresponding Profile
object.

Also, instead of calling 'showForm' everywhere, in case of an error we
just throw an exception of some sort and pass the message along there.

I've also introduced in FormAction the 'showInstructions' function in
order to get a unified instructions/info/error display method.

TODO: Improve info/error message handling, and what/when/where to show.
2013-08-31 18:01:13 +02:00
Mikael Nordfeldth 2a4dc77a63 The overloaded DB_DataObject function staticGet is now called getKV
I used this hacky sed-command (run it from your GNU Social root, or change the first grep's path to where it actually lies) to do a rough fix on all ::staticGet calls and rename them to ::getKV

   sed -i -s -e '/DataObject::staticGet/I!s/::staticGet/::getKV/Ig' $(grep -R ::staticGet `pwd`/* | grep -v -e '^extlib' | grep -v DataObject:: |grep -v "function staticGet"|cut -d: -f1 |sort |uniq)

If you're applying this, remember to change the Managed_DataObject and Memcached_DataObject function definitions of staticGet to getKV!

This might of course take some getting used to, or modification fo StatusNet plugins, but the result is that all the static calls (to staticGet) are now properly made without breaking PHP Strict Standards. Standards are there to be followed (and they caused some very bad confusion when used with get_called_class)

Reasonably any plugin or code that tests for the definition of 'GNUSOCIAL' or similar will take this change into consideration.
2013-08-18 13:13:56 +02:00
Mikael Nordfeldth ea837cea67 added missing return statement after showForm call
Issue #3125 at http://status.net/open-source/issues/3125 (and its duplicate 3127) describe buggy behaviour when trying to create a new group - i.e. the group is still created but with nickname NULL.

The reason the group is created is that when failing Nickname::normalize, the function trySave() in actions/newgroup.php doesn't call 'return' - meaning it just keeps going despite the error thrown. It a

So the simple solution to this bug was adding a return call at line 128, inside the catch just after the showForm(...) call.
2013-08-12 12:44:19 +02:00
Mikael Nordfeldth 3ad3535cd8 Merge commit 'refs/merge-requests/230' of git://gitorious.org/statusnet/mainline into merge-requests/230 2013-08-12 12:37:46 +02:00
Jean Baptiste Favre c23efdbdb0 PHP 5.4 compatibility: remove call-time pass by reference 2013-06-19 11:16:05 +02:00
Jean Baptiste Favre fcdd4d2cf0 Fix introduced bug, trying to shorten an empty status. 2013-06-15 19:07:43 +02:00
Jean Baptiste Favre 58a2630933 Code cleaning. Do call shortenLinks only once, right before saving new notice. 2013-06-15 19:07:43 +02:00
Jean Baptiste Favre 344a10be8b Code cleaning, remove 'TEST' tags. 2013-06-15 19:07:43 +02:00
Jean Baptiste Favre ec072e0af7 Notice update with media attachment may fail through API when status text + attachment length get higher than max notice length. Calling URL shortener can make global length less than maxlength, though allowing notice update. 2013-06-15 19:07:43 +02:00
Jean Baptiste Favre 6d47fadf42 Fix introduced bug, trying to shorten an empty status. 2013-06-15 19:04:32 +02:00
Jean Baptiste Favre 54374365e9 Code cleaning. Do call shortenLinks only once, right before saving new notice. 2013-06-15 19:04:31 +02:00
Jean Baptiste Favre f803b22752 Code cleaning, remove 'TEST' tags. 2013-06-15 19:04:31 +02:00
Jean Baptiste Favre 6387e0a90d Notice update with media attachment may fail through API when status text + attachment length get higher than max notice length. Calling URL shortener can make global length less than maxlength, though allowing notice update. 2013-06-15 19:04:31 +02:00
Jean Baptiste Favre 180cc39c4a Fix for #3649 issue. 2013-06-15 17:01:10 +02:00
Jean Baptiste Favre b23a744fba Fix for #3649 issue. 2013-06-15 16:58:50 +02:00
Jean Baptiste Favre 359f3ca113 Fix for #3651: oAuth apps list does only show the latest registered application 2013-06-15 14:19:15 +02:00
Jean Baptiste Favre 4284f28dec Fix for #3651: oAuth apps list does only show the latest registered application 2013-06-15 14:09:46 +02:00
Evan Prodromou 6aaee4e5fe $this->q => $q 2012-11-11 22:55:22 -05:00
Evan Prodromou edf2879021 Divert tag and url searches 2012-11-11 21:27:11 -05:00
Evan Prodromou 64288a62f8 Adding a search notice stream object 2012-11-11 21:05:13 -05:00
Evan Prodromou c809dd24c5 Don't show big invite button if invites are disabled 2012-10-17 10:10:42 -04:00
Evan Prodromou 86e3cbbcce Don't show big invite button if invites are disabled 2012-10-17 10:09:40 -04:00
Evan Prodromou 46f6b2c119 Don't call free on the results of a member query 2012-07-04 14:45:50 -04:00
Evan Prodromou ae84e8f524 Use the current logged-in use for home timeline 2012-07-03 12:22:59 -04:00
Evan Prodromou b4da5f3785 Merge branch 'master' into 1.0.x
Conflicts:
	plugins/Blacklist/BlacklistPlugin.php
2012-03-08 06:08:11 -06:00
Siebrand Mazeland de7ad991f9 Consistency update. 2012-03-05 00:38:39 +01:00
Evan Prodromou 23bafaba26 add canonical rel 2012-01-26 11:02:29 -05:00
Evan Prodromou 25f1e16952 Revert "don't show profile page of silenced users"
This reverts commit 7bb59ad2a1.
2011-12-31 09:34:59 -08:00
Evan Prodromou 7bb59ad2a1 don't show profile page of silenced users 2011-12-31 09:09:07 -08:00
Evan Prodromou c9fbe2ead7 remove common_debug() from search.json, search.atom 2011-12-30 22:23:50 -08:00
Evan Prodromou eb05bdfcaf remove debug message I'm sick of seeing 2011-12-30 22:16:22 -08:00
Michele macno Azzolari ad2fd9abd4 Fix whitescreen on recoverpassword with unknown user 2011-12-02 15:48:29 -05:00
Siebrand Mazeland c2db2483a0 Remove trailing whitespace in UI text. 2011-10-29 14:34:50 +02:00
Evan Prodromou b8079549ce Include the current profile in popular notice section for all 2011-10-20 10:54:33 -04:00
Evan Prodromou 22fead1b46 Squashed commit of the following:
commit fb1dfa9e98ded23fb5bdebae6465424a8cb8acd6
Author: Evan Prodromou <evan@status.net>
Date:   Thu Oct 20 10:40:07 2011 -0400

    Use popular notice stream for favorited page

commit e1d409ff738e39061ad35589d546ce9bed456975
Author: Evan Prodromou <evan@status.net>
Date:   Thu Oct 20 10:32:23 2011 -0400

    Use a caching stream for popular notice section

    Instead of a big cached query, we now use a caching notice stream for
    the popular notice section. It uses a single-table query at the
    bottom, then scopes the notices and filters for silenced users. This
    should be much nicer to our database servers.

    Also clears the popular cache when someone favors or disfavors
    something. A nice optimization would be to save the last weights and
    re-calculate them at invalidation time, adding the new notice (or not)
    depending on its own score. That will have to wait for another day,
    though.

commit e9b7ab4c26c95e755adaff53c3957dcfca31c16b
Author: Evan Prodromou <evan@status.net>
Date:   Thu Oct 20 10:31:14 2011 -0400

    Let CachingNoticeStream users skip the ';last' optimization
2011-10-20 10:40:39 -04:00
Siebrand Mazeland 7602f605d5 Remove unneeded trailing space. 2011-10-10 15:06:39 +02:00
Siebrand Mazeland 436068dc0d Use getBestName() instead of nickname per FIXMEs.
Update translator documentation.
2011-10-10 15:05:43 +02:00
Evan Prodromou c85abebc36 Remove missing twittersettings page from subscriptions helper 2011-10-03 09:13:54 -04:00
Evan Prodromou 82badb19c7 Move docs menu to site primary menu 2011-09-30 14:24:27 -04:00
Evan Prodromou 636455ad82 Fix conflict between URL parameter and POST parameter with groups
Group edit page is at /group/:nickname/edit. There's also a form
parameter named 'nickname'. The two were conflicting.

I changed the form parameter to 'newnickname' and it works.

I'm not sure how this ever worked before, though.
2011-09-30 11:48:00 -04:00
Evan Prodromou cd6e0a920f slightly better usergroups pagination 2011-09-30 11:38:54 -04:00
Evan Prodromou 9ba736c032 Add a dummy 'top' action to take you to the main page of the site 2011-09-30 09:45:17 -04:00
Evan Prodromou 32845a1051 Make lists work in single-user mode
Added routes to the router for list pages in single-user mode.

For each of the actions in those routes, use the global single-user
nickname rather than a nickname URL argument to determine the tagger ID.

In nav, and for Ajax, provide the right nicknames.
2011-09-29 12:29:12 -04:00
Evan Prodromou 9f954eddc5 remove unsupported hcard action 2011-09-27 11:43:41 -04:00
Evan Prodromou 5eddfd1eab remove unlinked publicpeopletagcloud 2011-09-27 10:55:10 -04:00
Evan Prodromou 2678b937b1 fix problem with missing list subscribers 2011-09-26 16:15:38 -04:00
Evan Prodromou 8e04dce947 Old-school settings page
A page to set or remove old-school settings.
2011-09-24 10:14:45 -04:00
Evan Prodromou ae0b4d49c7 optional conversation tree view 2011-09-24 09:29:12 -04:00
Evan Prodromou ddc121c085 New table for all old-school UI prefs 2011-09-24 07:12:34 -04:00
Evan Prodromou 02a30cf47c start using stream mode prefs instead of separate parameter 2011-09-23 17:50:38 -04:00
Evan Prodromou 66c97a1a1e switch between conversation and stream for public and group 2011-09-23 17:28:54 -04:00
Evan Prodromou dba9d71abd Support mode in all 2011-09-23 17:18:21 -04:00
Evan Prodromou 642901f4ae No such path 'index', so redirect to home timeline 2011-09-21 16:33:10 -04:00
Evan Prodromou d594c83a5a Merge commit 'refs/merge-requests/159' of git://gitorious.org/statusnet/mainline into merge-requests/159 2011-09-21 16:31:38 -04:00
Zach Copley b6b13a6bc7 Don't access current user without session 2011-09-21 00:40:27 +00:00
Evan Prodromou bd33036fae use a dummy notice stream for retweets_of_me under high load 2011-09-19 22:17:40 -04:00
Evan Prodromou 32f7d3edc2 inverted switch for performance on public page 2011-09-19 22:01:47 -04:00
Evan Prodromou ddf166e144 setting to turn off expensive queries 2011-09-19 21:55:11 -04:00
Evan Prodromou b44bb472eb disable public tag cloud on public sites 2011-09-19 19:37:58 -04:00
Evan Prodromou 319639a232 hide popular notice section on non-private sites 2011-09-19 16:19:12 -04:00
Evan Prodromou e8785927a3 log the problem when there's an exception leaving a group 2011-09-18 19:28:44 -04:00
Evan Prodromou cf2457f03f correct link for apitimelinegroup 2011-09-18 17:33:25 -04:00
Evan Prodromou be4e3593f5 declare attributes of TagAction 2011-09-18 12:52:38 -04:00
Evan Prodromou 951601633b better handling of tagged notice streams 2011-09-18 12:33:35 -04:00
Evan Prodromou b80b0d6520 use correct redirect on logout of single-user site 2011-09-17 15:08:04 -04:00
Evan Prodromou 927eae908a Remove unused xrds stuff from profile (replace in OMB please) 2011-09-14 12:18:46 -04:00
Zach Copley a1907f20c4 Remove old background validation stuff from paths admin panel
fixes http://status.net/open-source/issues/3297
2011-08-27 19:22:02 -07:00
Evan Prodromou abdae45679 allow posting to groups through atompub 2011-08-27 17:37:10 -04:00
Evan Prodromou 8287f27a95 remove more groupnav 2011-08-27 16:14:11 -04:00
Evan Prodromou e0f7cf6a6c remove group nav 2011-08-27 16:13:04 -04:00
Evan Prodromou dd5da6c9e8 Move common nav stuff to GroupAction 2011-08-27 11:28:32 -04:00
Zach Copley 5f1ace8c04 * Update copyright in version info
* add sammyd to contributors
* sort contributors
2011-08-25 16:33:41 -07:00
Zach Copley 297d603feb Update activity streams JSON to match spec
Squashed commit of the following:

commit 0722450267a1d0f4bdc2853f52a85b850329db73
Author: Zach Copley <zach@status.net>
Date:   Thu Aug 25 09:58:29 2011 -0700

    Updgrade activity object json

commit 882ba1dceaba8a0b3ec3513760aa09f68e41f270
Author: Zach Copley <zach@status.net>
Date:   Wed Aug 24 16:30:07 2011 -0700

    Update to the JSON activity serialization document

commit 121e441b314b93e184711c3dcc79ada69d429eba
Author: Zach Copley <zach@status.net>
Date:   Wed Aug 24 15:08:06 2011 -0700

    Output application/json instead of application/stream+json (at least for now)

commit e045e214bffe5e0ddeb0a42555d440b75ae4edde
Author: Zach Copley <zach@status.net>
Date:   Wed Aug 24 15:06:40 2011 -0700

    Update to use latest property names from the JSON activity spec
2011-08-25 10:01:20 -07:00
Evan Prodromou 0692d9c047 use new stream class rather than old Notice::publicStream() 2011-08-25 11:50:45 -04:00
Evan Prodromou 4f05205fbe log an exception when we can't join a group 2011-08-23 10:22:03 -04:00
Siebrand Mazeland 83c988e1e7 Fix incorrect translator documentation. 2011-08-21 12:41:03 +02:00
Siebrand Mazeland ab8c166d49 Add translator documentation. 2011-08-20 20:33:16 +02:00
Samantha Doherty c8a09b051c Reinstate labels for oauth application info. 2011-08-19 15:43:56 -04:00