Commit graph

290 commits

Author SHA1 Message Date
Marcin Kurczewski
c0f52ecf28 Fixed HTML injection in some forms 2014-02-22 23:37:30 +01:00
Marcin Kurczewski
395ac3033f Fixed HTML validation 2014-02-22 19:47:33 +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
1baceb5816 Fixed tag pagination on endless scrolling 2014-02-21 20:24:37 +01:00
Marcin Kurczewski
4b08686393 Added lightbox to post uploads 2014-02-21 20:24:37 +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
4420fa588d Post list errors are shown in nicer way 2014-02-21 20:24:37 +01:00
Marcin Kurczewski
db8e13ec35 Merging and renaming tags yields status messages
Previously, it just redirected back to tag list without any kind of
notification about success.
2014-02-21 20:24:37 +01:00
Marcin Kurczewski
dd498cf18d Fixed ban and unban confirmation messages 2014-02-20 21:32:07 +01:00
Marcin Kurczewski
b86aaf90a3 Fixed and simplified tag autocompletion 2014-02-18 21:26:54 +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
eee6421775 Post editing: quasi-popup in place of sliding unit 2014-02-18 18:35:55 +01:00
Marcin Kurczewski
65c6caa13c Freshened up sidebar 2014-02-18 16:41:36 +01:00
Marcin Kurczewski
532fe9f7e6 Added pagination to tag list 2014-02-16 20:10:38 +01:00
Marcin Kurczewski
3e99a6336c Form CSS overhaul 2014-02-16 20:10:34 +01:00
Marcin Kurczewski
4a69084a8b Upload no longer uses tabs 2014-02-16 20:00:26 +01:00
Marcin Kurczewski
7a5d97e153 Dates changed to relative form (except logs) 2014-02-16 15:16:20 +01:00
Marcin Kurczewski
620d1204f7 Changed footer appearance 2014-02-16 12:33:52 +01:00
Marcin Kurczewski
27c780602c Better looking user list 2014-02-16 12:33:52 +01:00
Marcin Kurczewski
83a966f1af Added tab wrappers 2014-02-16 12:33:48 +01:00
Marcin Kurczewski
c99596d12b Added last login date to users 2014-02-13 09:10:24 +01:00
Marcin Kurczewski
91b0432067 Fixed css
CSS for comments wasn't included in post-view.phtml. This manifested when user
posted a comment thruogh it (AJAX requests don't append CSS from AJAXed pages,
so added it in parent view).
2014-02-02 22:45:41 +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
d01a087b30 Cosmetic changes 2014-01-27 09:21:52 +01:00
Marcin Kurczewski
36e2e5827c Closed #69 2014-01-27 09:17:36 +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
1fcced20f1 Misc CSS tweaks 2014-01-06 19:25:27 +01:00
Marcin Kurczewski
b1fb329fc7 Fixed silly bug
Statistics for each user in user list showed comment count instead of post
count.
2013-12-23 16:43:12 +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
8c0c5269c4 Fixed 404 pages 2013-12-16 23:38:31 +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
1c6b10f966 Fixed 1px bug 2013-12-14 16:49:43 +01:00
Marcin Kurczewski
8f906d83bf Added active section indicator 2013-12-05 23:57:33 +01:00
Marcin Kurczewski
b8e37a234a Better looking query debug 2013-12-05 22:22:11 +01:00
Marcin Kurczewski
40e70c4305 User settings: new option to hide disliked posts 2013-12-05 22:21:15 +01:00
Marcin Kurczewski
0d3bb32e9c Refactor to HTML structure
- <script> moved outside <ul>
- Youtube posts pass W3C validation
2013-12-01 15:16:10 +01:00
Marcin Kurczewski
01c54d4d83 Optimalization: simplified selectors
Squash
2013-11-30 14:23:46 +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
5a231b19c3 Bugfix to JS (unknown variable error) 2013-11-30 01:10:58 +01:00
Marcin Kurczewski
3dd3ca5d99 Optimalization: moved <script> from HEAD to footer 2013-11-30 01:10:58 +01:00
Marcin Kurczewski
d570bc1790 Optimalization: sidebar options structure
- options rendering moved to separate file
- simplified template code
- removed redundant JS
2013-11-30 00:55:28 +01:00
Marcin Kurczewski
5e58488f3e Optimalization: simplified tabs structure 2013-11-30 00:05:03 +01:00
Marcin Kurczewski
ef70c1523f HTML validation 2013-11-27 17:42:26 +01:00
Marcin Kurczewski
f226c3eb0c Fixed hotkeys conflicting with Flash on Chrome 2013-11-25 22:23:48 +01:00
Marcin Kurczewski
c683fa3b0f User settings: added opt-in tags in post thumbs 2013-11-25 22:23:48 +01:00
Marcin Kurczewski
505fe1bac3 Mass tag: fixed concurrent tag toggling 2013-11-25 22:23:48 +01:00
Marcin Kurczewski
aa37ee66ff Various JS optimizations 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
c5292580ce Post edit: added custom thumbnail indicator 2013-11-23 17:29:08 +01:00
Marcin Kurczewski
3b532532d1 Post edit: post content can now be replaced 2013-11-23 17:27:56 +01:00
Marcin Kurczewski
ee224b84db Tag list: added info when there are no tags 2013-11-23 16:03:43 +01:00
Marcin Kurczewski
618f9e3d77 Any post type can be featured now
Automatic generator still searches only for images though.
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
c1e763316a Fav and comments are shown only if there are any 2013-11-23 15:39:13 +01:00
Marcin Kurczewski
6e9a18c0ae Paginator: introducing "..." pseudo-pages
If delta between pages in paginator is greater than 2, it adds "..." inbetween.
If delta is equal to 2, it adds missing page link instead.

Examples:

    1,4,5 gets converted to 1,...,4,5
    1,3,4 gets converted to 1,2,3,4
2013-11-23 13:54:13 +01:00
Marcin Kurczewski
0bbeb4604f Introducing tag list sort styles
Also, increased margin in /users
2013-11-23 13:54:13 +01:00
Marcin Kurczewski
007e797d3a Faster tag list 2013-11-23 13:54:09 +01:00
Marcin Kurczewski
6549237dda Mass tag: fixed tag case sensitiveness bug 2013-11-22 00:25:59 +01:00
Marcin Kurczewski
601bdab8e1 Mass tag: don't show buttons if no tag specified 2013-11-21 22:44:28 +01:00
Marcin Kurczewski
fb5e851a13 Closed #66 2013-11-21 22:44:28 +01:00
Marcin Kurczewski
a892410f5d Search queries: added new feature - "comment:x" 2013-11-21 22:32:49 +01:00
Marcin Kurczewski
bf0e40683c Removed TextHelper hacks 2013-11-18 15:41:16 +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
Marcin Kurczewski
a5d0a3f9ef HTML validation 2013-11-18 14:00:54 +01:00
Marcin Kurczewski
fdee23af99 Small changes
- Changed: rating posts - [up | down] --> [vote up, down]
- Fixed: logging of e-mail subject
- Improved: flagging posts/users provides visual feedback ("flagged")
- Improved: grammar in login screen
- Fixed: typo in password reset message
- Added: SessionHelper for handy management of user session data
2013-11-17 20:32:35 +01:00
Marcin Kurczewski
3c41940142 Closed #57 2013-11-17 14:53:21 +01:00
Marcin Kurczewski
da63c0fd19 Closed #61 2013-11-17 14:53:17 +01:00
Marcin Kurczewski
69a993c5af Fixed sending empty comments 2013-11-17 14:24:39 +01:00
Marcin Kurczewski
7b473ba06f Low-level refactor to core.php 2013-11-17 14:24:39 +01:00
Marcin Kurczewski
4e64431a96 Changes to infobar in post thumbnails 2013-11-16 22:40:19 +01:00
Marcin Kurczewski
6582b395d2 Added [P] hotkey for selecting first post on page 2013-11-16 22:02:18 +01:00
Marcin Kurczewski
bb01ae7fca Closed #62 2013-11-16 19:24:50 +01:00
Marcin Kurczewski
039d56c260 Further work on #62
Added ability to resend activation mail
2013-11-16 18:57:08 +01:00
Marcin Kurczewski
76a60ed5d7 Refactoring of error/success messages 2013-11-16 18:44:40 +01:00
Marcin Kurczewski
5e30253789 Closed #58 2013-11-13 19:42:22 +01:00
Marcin Kurczewski
6fadc612fd Changed feature image style 2013-11-10 12:23:59 +01:00
Marcin Kurczewski
7faf46beb9 Changed .ini a bit 2013-11-10 11:18:00 +01:00
Marcin Kurczewski
b8fedc1297 Tags are sorted alphabetically 2013-11-05 13:56:20 +01:00
Marcin Kurczewski
b3f15dc049 Header becomes less bloated in favor of tabs 2013-11-01 12:58:54 +01:00
Marcin Kurczewski
be919603e3 Tag list gets tabbed interface 2013-11-01 12:58:48 +01:00
Marcin Kurczewski
ac506e8c95 Added mass tag to header 2013-11-01 12:05:06 +01:00
Marcin Kurczewski
c3b2c68add Faster tag list 2013-11-01 10:08:35 +01:00
Marcin Kurczewski
bd05123cfc Post view: safety marked with color 2013-10-31 14:02:22 +01:00
Marcin Kurczewski
1714e9e665 Added support for post relations 2013-10-30 20:20:01 +01:00
Marcin Kurczewski
19eea1e5b6 Login form: checkbox works when clicking text 2013-10-30 16:53:25 +01:00
Marcin Kurczewski
b7084d61ae Closed #51 - anonymous uploads; simplified JS 2013-10-30 16:51:22 +01:00
Marcin Kurczewski
e0c4c28e70 Micro optimizations for tag list 2013-10-29 23:21:41 +01:00
Marcin Kurczewski
96d994eeea CSS enhancements for focused elements 2013-10-29 23:01:02 +01:00
Marcin Kurczewski
bc43883339 Closed #54 - added mass tag
- Moved tag forms to separate files
- Tag forms got tag autocompletion
2013-10-29 23:00:21 +01:00
Marcin Kurczewski
9e6716021a Models: enhanced entities filtering 2013-10-28 11:24:11 +01:00
Marcin Kurczewski
2aaafcd0de Updated help 2013-10-27 23:22:37 +01:00
Marcin Kurczewski
3f3024d6ac Added avatars for unknown users 2013-10-27 20:46:10 +01:00
Marcin Kurczewski
b55a8f1dce Closed #52 - fixes for anonymous accounts
- Anonymous account is no longer created when commenting/uploading
- Anonymous users can now switch safety, if it's available
- Anonymous users can delete their own posts
- Refurbished session and logging in/out mechanism
- Possible fixes for registration/activation/account deletion issues
2013-10-27 20:39:32 +01:00
Marcin Kurczewski
d92d49d60d Posts: clickable source links; "unknown" if empty 2013-10-26 12:30:17 +02:00
Marcin Kurczewski
0712f15ee4 Closed #50 2013-10-25 17:25:05 +02:00
Marcin Kurczewski
db180376d4 Better help 2013-10-25 17:20:11 +02:00
Marcin Kurczewski
febf22a667 Various fixes
- Upload form: outlook
- Upload form: removed no files warning
- Upload form: fixed pasting empty text
- Forms: width of form elements
- Users: restored missing stylesheet
2013-10-25 14:57:04 +02:00
Marcin Kurczewski
7d6bab9590 Fixed ce302c438d 2013-10-25 13:20:57 +02:00
Marcin Kurczewski
2279e5605b Closed #37 2013-10-25 13:18:03 +02:00
Marcin Kurczewski
89826a0be9 Closed #49 2013-10-25 09:59:46 +02:00
Marcin Kurczewski
d3eaf27bdc Closed #36 2013-10-25 09:59:42 +02:00
Marcin Kurczewski
e1acb8bd99 Reduced page loads
- Entity of user currently logged in is kept serialized in session
- Post is retrieved only if necessary in thumbnail generator
2013-10-23 00:16:52 +02:00
Marcin Kurczewski
18097b6192 Closed #45 2013-10-22 11:40:10 +02:00
Marcin Kurczewski
739e5d3b5d Added uploader avatar 2013-10-22 09:24:17 +02:00
Marcin Kurczewski
7cc2a98992 Post edit form moved to separate file 2013-10-22 00:39:41 +02:00
Marcin Kurczewski
eaa8c4897d Closed #39 2013-10-22 00:17:40 +02:00
Marcin Kurczewski
823888b0c1 Universal check for form submission 2013-10-22 00:17:36 +02:00
Marcin Kurczewski
90a75e4d30 User edit/delete forms moved to separate files 2013-10-21 23:29:38 +02:00
Marcin Kurczewski
ce302c438d Safety list in /upload is resolved automatically 2013-10-21 23:27:47 +02:00
Marcin Kurczewski
7743753641 Tag list visuals
- long tag text overflow in post-view and tag-list
- tag usage visualized in tag-list
2013-10-21 23:07:30 +02:00
Marcin Kurczewski
ff3e4bc287 Closed #47 2013-10-21 14:24:34 +02:00
Marcin Kurczewski
f2947a2550 Added "random" tab 2013-10-21 13:13:10 +02:00
Marcin Kurczewski
aab67f4b6c Better main page 2013-10-21 09:35:06 +02:00
Marcin Kurczewski
58a6345ae8 Fixed e-mail address visibility 2013-10-20 19:19:52 +02:00
Marcin Kurczewski
bc24b7d2cf Fixed problems with Android keyboards
Users were completely unable to type anything.
2013-10-20 18:55:33 +02:00
Marcin Kurczewski
07f36c710a Added versioning; changed repo name 2013-10-20 11:12:56 +02:00
Marcin Kurczewski
3fc1046bb2 Closed #14 2013-10-20 00:31:22 +02:00
Marcin Kurczewski
e15910b637 Closed #41 2013-10-19 22:56:56 +02:00
Marcin Kurczewski
c6754e5866 Closed #35; various tweaks
- All form.aligned inputs got wrapped with special div for easy width control
- Fixed edit jump bug
2013-10-19 20:58:51 +02:00
Marcin Kurczewski
019ce6a141 Fixed comment removal 2013-10-19 20:17:16 +02:00
Marcin Kurczewski
b1740fbfcf Closed #29 2013-10-19 20:17:11 +02:00
Marcin Kurczewski
440029d6d6 Small changes to users presentation
- Fixed W3C validation in user list
- Fixed post CSS were not included
- Added link to delete account under "options" (for consistency sake)
2013-10-19 20:15:16 +02:00
Marcin Kurczewski
ea463cb0db Faster queries, fixed foreign keys
When user is removed, their posts and comments get null user ID now
2013-10-19 20:14:23 +02:00
Marcin Kurczewski
53f9076bff Closed #23 2013-10-19 16:16:09 +02:00
Marcin Kurczewski
d85728064a Closed #17 2013-10-19 15:19:47 +02:00
Marcin Kurczewski
91776a3e54 Closed #30 2013-10-19 13:38:20 +02:00
Marcin Kurczewski
315c5d074e Better caching 2013-10-19 13:00:03 +02:00
Marcin Kurczewski
4b5c13519c Added optional SQL queries debug 2013-10-19 12:53:49 +02:00
Marcin Kurczewski
019e7eea7f Closed #43 2013-10-18 00:09:50 +02:00
Marcin Kurczewski
73050f159f Better-looking comment counter 2013-10-18 00:02:11 +02:00
Marcin Kurczewski
379674d027 Closed #8 2013-10-17 23:37:41 +02:00
Marcin Kurczewski
ee050cfd01 Worked on #8
Also:
- changed URL schema for posts from /posts/action/id to /posts/id/action
- moved XXXController::locateXXX methods to Model_XXX::locate
2013-10-17 22:57:32 +02:00
Marcin Kurczewski
c90561e4ce Admins can view user e-mails too
They could do this anyway by doing simple SELECTs. This change is just to make
admins' lives easier.
2013-10-16 20:26:48 +02:00
Marcin Kurczewski
6dd6163833 Added SQL query count in footer 2013-10-16 19:45:57 +02:00
Marcin Kurczewski
42782258cc Closed #31 2013-10-16 19:41:42 +02:00
Marcin Kurczewski
39db2a64e1 Closed #32 2013-10-16 18:07:23 +02:00
Marcin Kurczewski
52956b56c8 Preventing setting access rank to "nobody" 2013-10-16 13:12:17 +02:00
Marcin Kurczewski
e0d01298fc Universal pagination; closed #3 2013-10-16 13:07:01 +02:00
Marcin Kurczewski
28c1ce68b4 Closed #20
Changed Enum::toString() calls
Fixed chrome ghost margin
2013-10-16 08:33:45 +02:00
Marcin Kurczewski
f42ed135fa Slightly better header 2013-10-15 22:49:01 +02:00
Marcin Kurczewski
23ac43ecac Closed #28 2013-10-15 20:31:38 +02:00
Marcin Kurczewski
17013e8fe5 Closed #1; closed #2; closed #4; closed #27 2013-10-15 13:14:48 +02:00
Marcin Kurczewski
8fdc90bab7 Worked on #4, #1 and #2
Also:
- enhanced form stylesheets
- W3C validation
2013-10-15 00:41:04 +02:00
Marcin Kurczewski
23f430f41c Worked on #4 2013-10-14 10:22:53 +02:00
Marcin Kurczewski
23fc89c30c User safety settings 2013-10-14 00:25:40 +02:00
Marcin Kurczewski
b5c3ddca1c Closed #24 2013-10-13 22:58:02 +02:00
Marcin Kurczewski
f96d2a96db Fixed headers for webkit 2013-10-13 22:54:16 +02:00