429 Commits

Author SHA1 Message Date
Toby Zerner
781dc2ef0c New component for post excerpts, which will be shown in search results
Perhaps also in user activity stream. They are used in the mentions
extension.

In order to generate the excerpt, each formatter can implement a
“strip” method which basically converts block formatting into inline
formatting.
2015-05-14 22:41:05 +09:30
Toby Zerner
85fa9ca609 Fix incorrect attribute name 2015-05-11 12:12:00 +09:30
Toby Zerner
a1cd6417c7 Add API for adding a formatter 2015-05-11 12:11:26 +09:30
Toby Zerner
b4fd662000 Remove BasicFormatter; add LinkifyFormatter 2015-05-11 12:11:19 +09:30
Toby Zerner
e5f2355d17 Post can't be abstract because it needs to be instantiable for querying 2015-05-11 10:40:41 +09:30
Toby Zerner
d166757930 Extract mappedMorphTo function into a trait
Not sure if this is the best thing to do, it could also just be put on
the base Model class
2015-05-11 10:39:54 +09:30
Franz Liedke
825b4082de Copy the config.php file upon installation.
This allows us to know whether Flarum is already installed, so that
we can disable certain service providers when it isn't.

This should fix #67.
2015-05-08 20:44:53 +02:00
Franz Liedke
e1569beb00 Fix discussion seeder not using the correct post subtypes.
Related to #67.
2015-05-08 18:12:02 +02:00
Franz Liedke
2245b11bb1 Seed command: Only run seeders that have not been run as part of flarum:install command. 2015-05-08 15:15:09 +02:00
Franz Liedke
df8a035935 Remove obsolete line.
Related to #67.
2015-05-08 15:15:08 +02:00
Toby Zerner
023b8b9a9c Don't attempt deletion if the user doesn't have an avatar 2015-05-07 16:54:26 +09:30
Toby Zerner
c58fc07798 Actually use the calculated offset 2015-05-07 16:54:14 +09:30
Toby Zerner
b5169512cb Move some API error handling code around. It still sucks though 2015-05-07 16:08:20 +09:30
Toby Zerner
59d8d63acd Add preliminary avatar resizing 2015-05-07 13:59:07 +09:30
Toby Zerner
05e561d3d6 Add pagination links to JSON-API index actions 2015-05-07 08:22:15 +09:30
Toby Zerner
8e1f6db85d Change mergeInto return signature; only merge posts if same user 2015-05-07 06:38:40 +09:30
Toby Zerner
80aaf42a53 Fix signup error 2015-05-06 12:12:31 +09:30
Toby Zerner
bde9bf9378 Fix FontAwesome path 2015-05-06 12:12:22 +09:30
Toby Zerner
54f731942e Add user group badges 2015-05-06 11:25:19 +09:30
Toby Zerner
92c1ee26c8 Fix content attribute decoding into an object 2015-05-06 11:24:02 +09:30
Toby Zerner
e7ff776001 Collect gambits that were matched and applied 2015-05-06 11:23:35 +09:30
Toby Zerner
a4d3345b99 Add shortcut API to serialize attributes 2015-05-06 11:23:12 +09:30
Toby Zerner
9559ac1bb6 Delete previous avatar when uploading a new one 2015-05-06 11:22:35 +09:30
Toby Zerner
8258d4e504 Fix dud call in magic method 2015-05-05 17:31:29 +09:30
Toby Zerner
a822deaa98 Clean up post type heritable view arguments 2015-05-05 17:29:43 +09:30
Toby Zerner
8aa6253c59 Precursor to storing extension providers for later use 2015-05-05 17:05:47 +09:30
Toby Zerner
92a75fd786 Add a base ServiceProvider with useful public APIs 2015-05-05 14:30:45 +09:30
Toby Zerner
2850c1b38c Make NotificationSender compatibleWith method static 2015-05-05 14:29:57 +09:30
Toby Zerner
d13cb03e39 Return the post that was added/changed/deleted 2015-05-05 14:29:07 +09:30
Toby Zerner
f2056c4acf Clean up post type API 2015-05-05 14:28:40 +09:30
Toby Zerner
bf593504c7 Clean up event handlers 2015-05-05 14:27:47 +09:30
Toby Zerner
24481f3f77 Change API for serializer relationships 2015-05-05 14:26:53 +09:30
Toby Zerner
3726c97d5c Remove old code 2015-05-05 09:17:00 +09:30
Toby Zerner
f0219de93f Fix admin 2015-05-05 09:16:53 +09:30
Toby Zerner
56ef42f931 Add concept of "mergeable" activity posts
For example: when you rename a discussion, DiscussionRenamedPost is
created. If you rename it again immediately afterwards, then a new
DiscussionRenamedPost can be merged into the old one. This will either
result in the old one being updated with the new title, or it being
deleted all together if it was renamed back to the old title.
2015-05-04 12:19:25 +09:30
Toby Zerner
0a2c05379c Update TokenAction for new architecture 2015-05-04 10:30:56 +09:30
Toby Zerner
9af9dce740 Add ExtensionsServiceProvider to load enabled extensions 2015-05-04 08:56:19 +09:30
Toby Zerner
67f64b631a Pass action in RenderView event so that handler can access actor 2015-05-04 08:55:44 +09:30
Toby Zerner
850a49285b Add API to define custom model relationships 2015-05-04 08:55:03 +09:30
Toby Zerner
f03f046efe Add event to modify user search 2015-05-03 12:07:15 +09:30
Toby Zerner
d966c9831a Add event for registering user search gambits 2015-05-03 12:06:01 +09:30
Toby Zerner
b38878da80 Add delete avatar action 2015-05-03 12:05:18 +09:30
Toby Zerner
29be20c91a Fix incorrect function call 2015-05-03 12:04:57 +09:30
Toby Zerner
8f29679b46 Convert the rest of the API to new action architecture
Also make some tweaks:
- Merge SerializeAction::$include and
SerializeAction::$includeAvailable into a keyed boolean array
- Set defaults for SerializeAction::$limit and $limitMax
- Rename SerializeAction::$sortAvailable to $sortFields
2015-05-03 12:04:43 +09:30
Toby Zerner
ecdb2becd4 Assign user input to data property on EditDiscussionCommand 2015-05-02 09:01:27 +09:30
Toby Zerner
f67f34e287 Add removed posts as an API attribute 2015-05-02 09:00:22 +09:30
Toby Zerner
8ee9480205 Update discussion/post sort semantics inline with new API actions
Instead of $sort and $order being separate, they are now a single
array, allowing multiple sort criteria: `[‘foo’ => ‘asc', ‘bar’ =>
‘desc’]`
2015-05-02 09:00:07 +09:30
Toby Zerner
22ff8a203d Make sure serializers work with relations implemented with magic (via __call) 2015-05-02 08:58:28 +09:30
Toby Zerner
db31d9f772 Making a note that we should not use Actor as a singleton 2015-05-02 08:57:14 +09:30
Toby Zerner
a426fa6560 Update API action architecture
- An API action handles a Flarum\Api\Request, which is a simple object
containing an array of params, the actor, and optionally an HTTP
request object
- Most API actions use SerializeAction as a base, which parses request
input according to the JSON-API spec (creates a JsonApiRequest object),
runs the child class method to get data, then serializes it and assigns
it to a JsonApiResponse (standard HTTP response with a
Tobscure\JsonApi\Document as content)
- The JSON-API request input parsing is subject to restrictions as
defined by public static properties on the action (i.e. extensible)
- Also the actor is given to the serializer instance now, instead of
being a static property
2015-05-02 08:56:43 +09:30