Commit graph

141 commits

Author SHA1 Message Date
Marcin Kurczewski
0a7fc387ac Simplified auth 2014-05-01 22:11:05 +02:00
Marcin Kurczewski
e673bdb50c Fixed privilege checking 2014-05-01 16:06:38 +02:00
Marcin Kurczewski
d08c15b9e7 Refactor to thumbnail generating 2014-04-30 09:54:04 +02:00
Marcin Kurczewski
c52531e8fc Increasing readability 2014-04-30 08:08:24 +02:00
Marcin Kurczewski
c18c9ec680 Lines wrapped again 2014-04-30 00:11:53 +02:00
Marcin Kurczewski
396ea97cad PrivilegesHelper shortened to Access
Methods are shorter, too
2014-04-29 23:53:47 +02:00
Marcin Kurczewski
81e43286b5 Newest chibi-core 2014-04-29 21:35:29 +02:00
Marcin Kurczewski
f495774be4 New exception style; split long lines in php 2014-04-27 16:01:45 +02:00
Marcin Kurczewski
d6f02fb724 Added "upvoted" tab 2014-03-03 21:56:10 +01:00
Marcin Kurczewski
34b9a80ba7 Moved Sql and Database.php to remote project 2014-02-28 20:44:35 +01:00
Marcin Kurczewski
2aefafa473 Favoriting a post automatically votes it up now
It's still possible for user to withdraw his vote afterwards for whatever
reason.
2014-02-23 22:46:51 +01:00
Marcin Kurczewski
5827626deb Search services refactor
Code rerlated to search query parsing moved to separate classes.
2014-02-23 22:03:59 +01:00
Marcin Kurczewski
6af3a0e42b SQL overhaul: introducing tree-like queries
Reason: until now, PostSearchService was using magic to get around the biggest
limitation of SqlQuery.php: it didn't support arbitrary order of operations.
You couldn't join with something and tell then to select something from it.
Additionally, forging UPDATE queries was a joke. The new Sql* classes replace
SqlQuery completely and address these issues. Using Sql* classes might be
tedious and ugly at times, but it is necessary step to improve model layer
maintainability.

It is by no menas complete implementation of SQL grammar, but for current needs
it's enough, and, what's most important, it is easily extensible.

Additional changes:
* Added sorting style aliases
  - fav_count
  - tag_count
  - comment_count
* Sorting by multiple tokens in post search is now possible
* Searching for disliked posts with "special:disliked" always yields results
  (even if user has disabled showing disliked posts by default)
* More maintainable next/prev post support
2014-02-22 19:40:10 +01:00
Marcin Kurczewski
2bac28a553 More capable privilege system
Following privileges for post actions can now understand different settings for
everyone and for uploader:

* Scoring posts
* Featuring posts
* Flagging posts
* Favoriting posts

Additionally, privilege for flagging users can now understand different
settings for everyone and for the user that is currently logged in.

In other words: with this update admin can configure privileges so that scoring
own posts or flagging oneself will be prohibited, while scoring other people's
posts or flagging others will be okay.
2014-02-21 20:24:37 +01:00
Marcin Kurczewski
28037af029 Registered users can mass tag their own posts 2014-02-21 20:24:37 +01:00
Marcin Kurczewski
4420fa588d Post list errors are shown in nicer way 2014-02-21 20:24:37 +01:00
Marcin Kurczewski
2bad17ebdb Fixed extension in saved posts 2014-02-18 18:35:58 +01:00
Marcin Kurczewski
1352aba438 Fixed saving post original file name to DB 2014-02-18 18:35:58 +01:00
Marcin Kurczewski
0c5fc7e03f Fixed useless arguments 2014-02-16 20:10:38 +01:00
Marcin Kurczewski
b22e74c0e9 Closed #72 2014-02-05 08:35:24 +01:00
Marcin Kurczewski
35cdc0cf3a Refactored scripts and stylesheets
Styles, scripts and page titles are no longer set from controllers level.
Changed because it was breaking MVC pattern and led to spaghetti code.

Also, optimized JS/CSS inclusions a bit.
2014-02-01 11:24:03 +01:00
Marcin Kurczewski
d170e3b526 Closed #68 2014-02-01 11:23:59 +01:00
Marcin Kurczewski
36e2e5827c Closed #69 2014-01-27 09:17:36 +01:00
Marcin Kurczewski
752cbbd016 Fixed undefined method 2014-01-26 13:35:47 +01:00
Marcin Kurczewski
100303173e Added comment editing support
In other news, editing a post doesn't reload page anymore
(yay for editing tags for Youtube posts)
2014-01-25 16:39:09 +01:00
Marcin Kurczewski
fd9433a2e3 Edit tokens moved to model 2014-01-25 15:09:20 +01:00
Marcin Kurczewski
5607cfc353 Models rewrite; removed RedBeanPHP; misc changes
Pages load 1.5-2x faster
Exception trace in JSON is now represented as an array
Fixed pagination of default favorites page in user pages
Fixed thumbnail size validation for non-square thumbnails
2013-12-18 15:17:49 +01:00
Marcin Kurczewski
95961fe7d5 Added tag sorting here and there
- Title attribute in post thumbnail
- Page title in post view
- Footer in featured post
2013-12-14 16:55:07 +01:00
Marcin Kurczewski
5b25250209 Optimalizations 2013-12-14 14:50:30 +01:00
Marcin Kurczewski
4c1bb44e59 Fixed rare bug in prev/next post
If tag/user/whatever from last search was deleted after viewing a post,
refreshing the page with that post would yield "Invalid tag/user/whatever"
error.

I changed it so that when retrieving previous/next post for latest search query
throws any errors, saved search query gets resetted to empty one.
2013-12-01 14:47:35 +01:00
Marcin Kurczewski
4285aff671 Fixes to preloading 2013-11-30 16:19:48 +01:00
Marcin Kurczewski
01c54d4d83 Optimalization: simplified selectors
Squash
2013-11-30 14:23:46 +01:00
Marcin Kurczewski
d7cb024f24 Refactored pagination queries 2013-11-30 13:59:29 +01:00
Marcin Kurczewski
c9a8f99f6a Optimization: preloading moved back to controllers
- Nearly twice faster page load
- Query count greatly dropped
2013-11-30 01:10:58 +01:00
Marcin Kurczewski
1e954bb815 Optimalization: faster but dirty row retrieval 2013-11-30 01:10:55 +01:00
Marcin Kurczewski
5e58488f3e Optimalization: simplified tabs structure 2013-11-30 00:05:03 +01:00
Marcin Kurczewski
505fe1bac3 Mass tag: fixed concurrent tag toggling 2013-11-25 22:23:48 +01:00
Marcin Kurczewski
20022ea4ab Next/prev links are bound to latest search query 2013-11-25 22:23:45 +01:00
Marcin Kurczewski
0ef5f1b46d Absolute paths used where necessary
- No random chdir() calls
- No more exceptions when executing scripts from dirs other than root
- find-posts.php prints absolute paths making piping more useful
2013-11-23 20:52:41 +01:00
Marcin Kurczewski
3b532532d1 Post edit: post content can now be replaced 2013-11-23 17:27:56 +01:00
Marcin Kurczewski
d274f1c044 Fixed featured post quirks
- fixes for empty database
- when post was deleted, new one is selected automatically
2013-11-23 16:03:40 +01:00
Marcin Kurczewski
fdd49d783a Compressed logs from uploads 2013-11-23 15:39:19 +01:00
Marcin Kurczewski
81017e18cb Logging: improved grammar a little 2013-11-23 15:39:19 +01:00
Marcin Kurczewski
676c3a41e2 Logging: removed logEvent() and log prefixes
This looked ugly.
2013-11-23 15:39:19 +01:00
Marcin Kurczewski
db602f08d3 Better handling of anonymous user names 2013-11-23 15:39:19 +01:00
Marcin Kurczewski
d8997edc57 Refactor of controllers and models
- Most of model-related code moved from controllers to model classes, much
  fewer calls to R::whatever() in controllers
- Post editing and uploading shares the same code, thus making implementing
  stuff easier in the future
- Added support for default bean wiring, no more calls to R::preload() all over
  the place
- More robust concurrent post editing detection
2013-11-23 15:39:13 +01:00
Marcin Kurczewski
6549237dda Mass tag: fixed tag case sensitiveness bug 2013-11-22 00:25:59 +01:00
Marcin Kurczewski
a98c61ebf3 Closed #67 2013-11-21 22:44:28 +01:00
Marcin Kurczewski
e336d04347 Logging minifix 2013-11-18 23:23:56 +01:00
Marcin Kurczewski
17bd7a7572 Added support for OpenGraph
- Linking to index and individual posts produces thumbs on sites like Facebook
- Thumbnails theoretically support custom sizes
2013-11-18 14:33:43 +01:00