Commit Graph

3935 Commits

Author SHA1 Message Date
Toby Zerner
2c46888db5 Upgrade to L5 + huge refactor + more. closes #2
New stuff:
- Signup + email confirmation.
- Updated authentication strategy with remember cookies. closes #5
- New search system with some example gambits! This is cool - check out
the source. Fulltext drivers will be implemented as decorators
overriding the EloquentPostRepository’s findByContent method.
- Lay down the foundation for bootstrapping the Ember app.
- Update Web layer’s asset manager to properly publish CSS/JS files.
- Console commands to run installation migrations and seeds.

Refactoring:
- New structure: move models, repositories, commands, and events into
their own namespaces, rather than grouping by entity.
- All events are classes.
- Use L5 middleware and command bus implementations.
- Clearer use of repositories and the Active Record pattern.
Repositories are used only for retrieval of ActiveRecord objects, and
then save/delete operations are called directly on those ActiveRecords.
This way, we don’t over-abstract at the cost of Eloquent magic, but
testing is still easy.
- Refactor of Web layer so that it uses the Actions routing
architecture.
- “Actor” concept instead of depending on Laravel’s Auth.
- General cleanup!
2015-02-24 20:33:18 +10:30
Toby Zerner
0e4e44c358 Preliminary email confirmation implementation
Whenever a user registers or changes their email, they are sent an
email containing a link which they must click to confirm it.

Upon registering, a user won’t be assigned to any groups and therefore
won’t have permission to do anything (but they can still log in!) Upon
confirming their email for the first time, their account will be
assigned to the Member group and thus “activated”.
2015-02-16 14:52:53 +10:30
Toby Zerner
b6ef1f296e Cleanup 2015-02-16 14:50:38 +10:30
Toby Zerner
9bb7001645 Better check for user property in command validators 2015-02-16 14:48:10 +10:30
Toby Zerner
c1dfa9c124 Fix modal appearance 2015-02-16 14:12:48 +10:30
Toby Zerner
cf726f16db Add a little spin transition on the search 'x' :) 2015-02-16 13:30:11 +10:30
Toby Zerner
ed55ebf7da Better LESS configuration/theme customisability 2015-02-16 12:40:57 +10:30
Toby Zerner
80cc910175 Add styles for post footer/actions
Will be used by extensions
2015-02-13 22:03:34 +10:30
Toby Zerner
82b1107db6 Fix logout action 2015-02-13 11:47:58 +10:30
Toby Zerner
c99ee1c5d5 Oops 2015-02-13 11:47:37 +10:30
Toby Zerner
d453e00ea0 Clean up user avatar/color generation 2015-02-13 11:45:14 +10:30
Toby Zerner
540902cd7a Seed renamed posts properly 2015-02-13 11:44:19 +10:30
Toby Zerner
5e09fd7cd8 Explicit mapping of post type to class 2015-02-13 10:30:32 +10:30
Toby Zerner
011ae3603e Implement "renamed" posts
Record when the discussion was renamed, from what, and by whom.
Information is stored in the `content` field as a serialised JSON
object because proper polymorphism will be too difficult with Ember
Data and especially when extensions try to add new post types.
2015-02-13 10:23:38 +10:30
Toby Zerner
fa3523ac74 Remove the go to top button
It’s not particularly useful when there are fixed elements all over the
page (header, sidebar)
2015-02-13 09:46:22 +10:30
Toby Zerner
681de4244b Still show index pane when a discussion is created 2015-02-12 15:19:46 +10:30
Toby Zerner
5229c5c06a Mark a discussion as read when it is created 2015-02-12 15:18:45 +10:30
Toby Zerner
639e86cf4e Fix mark as read bug 2015-02-12 15:18:26 +10:30
Toby Zerner
87159bd9a0 Rename and delete discussion controls 2015-02-12 15:18:17 +10:30
Toby Zerner
6138825db6 Only show reply button if user has permission 2015-02-12 15:17:20 +10:30
Toby Zerner
1a11194ca8 Helper method for adding menu separators 2015-02-12 15:16:15 +10:30
Toby Zerner
2bd5471699 Implement discussion deletion 2015-02-12 14:35:40 +10:30
Toby Zerner
36787bcf45 Implement hard deletion and rename soft delete to hide 2015-02-12 14:35:24 +10:30
Toby Zerner
c33697654a Fix up uncaught ajax error alert message 2015-02-12 14:34:07 +10:30
Toby Zerner
ffef6af403 Fix up bug with the way we hide list items
If we use an #unless condition, then when the view is removed from the
template, it is destroyed, and cannot be inserted again. So we’ll just
keep the item there the whole time, and toggle its visibility with CSS.
2015-02-10 19:55:22 +10:30
Toby Zerner
090e8c6061 Delete ember-cli README 2015-02-10 18:08:20 +10:30
Toby Zerner
c28307903b Upgrade to Ember 1.11-beta.1
HTMLBars goodness! Since there was some breakage and a lot of fiddling
around to get some things working, I took this opportunity to do a big
cleanup of the whole Ember app. I accidentally worked on some new
features too :3

Note that the app is still broken right now, pending on
https://github.com/emberjs/ember.js/issues/10401

Cleanup:
- Restructuring of components
- Consolidation of some stuff into mixins, cleanup of some APIs that
will be public
- Change all instances of .property() / .observes() / .on() to
Ember.computed() / Ember.observer() / Ember.on() respectively (I think
it is more readable)
- More comments
- Start conforming to a code style (2 spaces for indentation)

New features:
- Post hiding/restoring
- Mark individual discussions as read by clicking
- Clicking on a read discussion jumps to the end
- Mark all discussions as read
- Progressively mark the discussion as read as the page is scrolled
- Unordered list post formatting
- Post permalink popup

Demo once that Ember regression is fixed!
2015-02-10 18:05:40 +10:30
Toby Zerner
cf88fda8c8 Always add discussion state information 2015-02-10 17:53:52 +10:30
Toby Zerner
e30ae7b7b8 Don't imply order on posts relationship 2015-02-10 17:53:16 +10:30
Toby Zerner
8e5cbcd196 Add unordered list formatting 2015-02-10 17:52:13 +10:30
Toby Zerner
624d3d70bb Refresh comments count when updating metadata 2015-02-10 17:51:39 +10:30
Toby Zerner
227f19ddf6 Change API attribute for hiding/restoring posts 2015-02-10 17:51:16 +10:30
Toby Zerner
f56da376da Prevent unnecessary events from being triggered 2015-02-10 17:49:42 +10:30
Toby Zerner
8e6011e8d0 API for marking all as read 2015-02-10 17:48:58 +10:30
Toby Zerner
eec50f687c Move extractMeta override to serializer 2015-02-09 20:14:18 +10:30
Toby Zerner
071e403020 Add editorconfig 2015-02-09 20:12:42 +10:30
Toby Zerner
af94f22334 Rejig post formatting 2015-02-09 09:49:48 +10:30
Toby Zerner
3ed893b1b8 Improve LESS variable skinning (unfinished) 2015-02-08 16:00:09 +10:30
Toby Zerner
d45f2fd1ac Signup + modal refactoring 2015-02-08 15:59:39 +10:30
Toby Zerner
6c3debc79b Fix jumpy downward post loading 2015-02-08 15:58:53 +10:30
Toby Zerner
dc6a8bf08b Fix scrubber times 2015-02-08 15:58:37 +10:30
Toby Zerner
077975fb17 Fix index sorting 2015-02-08 15:57:41 +10:30
Toby Zerner
64270fd066 Fix index pane autoscroll 2015-02-08 15:57:33 +10:30
Toby Zerner
7863f0114c Make post types/components more flexible 2015-02-08 15:56:44 +10:30
Toby Zerner
59964e3b22 Implement post editing 2015-02-08 15:55:33 +10:30
Toby Zerner
2d181933ea Move alerts to their own controller 2015-02-08 15:51:40 +10:30
Toby Zerner
28d213d868 Implement discussion composition and creation 2015-02-06 14:07:15 +10:30
Toby Zerner
abd3aa2e1a Composer and replying tweaks/bug-fixes 2015-02-06 14:06:22 +10:30
Toby Zerner
e6135d60b2 It's a component, not a view! 2015-02-06 14:03:35 +10:30
Toby Zerner
b4ea3af5b4 Make discussion in view when returning to index 2015-02-06 12:22:08 +10:30