Commit Graph

493 Commits

Author SHA1 Message Date
Azareal e90d96961f Added the BBCode plugin.
Restructured the plugin system.
Multiple plugins can bind to the same hook now (not available for variadic hooks yet!)
The parser is now benchmarked. The bench_round4 is run with both plugin_markdown and plugin_bbcode enabled.
Added a benchmark for the BBCode plugin.
Moved some of the template writing logic into a more generalised function.
URLs are now recognised by the system and linked.
Converted more custom errors into LocalError calls.
Faster and less bandwidth intensive Emojis on Edge.
Fixed a bug with replies not working.
2017-01-05 14:41:14 +00:00
Azareal 33c2f4ccb0 Added a custom router which is twice as fast as the old one.
Added support for SSL.
Added the email system. Not fully tested.
Added Email Verification.
Added the Emails Page in the Account Manager.
Email Activation is now fully supported.
Fixed CustomErrorJSQ() and added CustomError().
Added commented out tests for Vestigo.
Added tests for the new (possibly temporary) custom router.
Swapped some of the custom error blocks for the Account Manager with LocalError calls.
Moved the account menu into it's own template.
2017-01-03 07:47:31 +00:00
Azareal 1b18ab523c Fixed a minor oversight o.o 2017-01-01 16:14:38 +00:00
Azareal e47450d372 Added the theme system.
You can now switch between themes in the Control Panel.
The Alternate Post Layout teased in various screenshots and bits of inaccessible code is now the Tempra Conflux theme, while the original post layout is the Tempa Simple theme.
Dramatically increased the speed at which the static files are served.
Added a benchmark for static files.
Eliminated the name parameter in various custom page structs.
Added the TopicsPage struct for the /topics/ route.
Added the ForumPage struct for the /forum/{id} route.
Added the ForumsPage struct for the /forums/ route.
The static file route now serves 404s when a file doesn't exist instead of nearly crashing the server.
Reduced the number of unnecessary allocations on some of the routes.
Added gradients to Tempra Conflux.
Added position: sticky; to the userinfo blocks in Tempra Conflux.
Added a notice on the generated template files.
2017-01-01 15:45:43 +00:00
Azareal bcaa646f68 Added an alternate topic layout. This might serve as the foundation of a second theme. You'll be able to switch between the two with ease once the theme system is in.
The profile route is now compiled again. A custom struct is now used for it instead of the generic Page struct.
Added the group list to the Control Panel.
Tweaked the navbar CSS.
Non-mods can no longer post in locked topics.
Locked topics now have a gray background on the topic view header, the forum view, and the topiclist,
The reply content box no longer shows up on topics which don't have any replies.
2016-12-26 04:44:07 +00:00
Azareal 9f2efce516 The design is now responsive. It looks decent on mobile phones, tablets, laptops and desktop computers.
The router is now benchmarked. The custom router we'll use to replace it will also be benchmarked once it's completed.
Added a placeholder page for the Control Panel Dashboard.
Tightened some of the control panel route permission checks.
Moved the Control Panel menu into it's own template.
Added permission checks to the links on the Control Panel menu.
2016-12-24 13:14:40 +00:00
Azareal 544155849f Updated the README. 2016-12-24 01:07:32 +00:00
Azareal 2702b745d5 Added the User Editor.
Added the EditUser, EditUserEmail, EditUserPassword, EditUserGroup, EditUserGroupSuperMod and EditUserGroupAdmin permissions.
Allocations are now tracked in the benchmarks.
The topics template is now tracked in the benchmarks.
The entire topic, topics, forum and forums routes are now benchmarked.
Initial attempts to benchmark the router have begun, I'll probably have a benchmark in a later commit without the fluff so that it's easier to see it's performance impact.
Improved the security on some of the moderation routes.
SettingLabel is now OptionLabel for easier reuse.
Moved one of the inline queries into a prepared statement.
Added the initial draft for the new router.
Fixed a bug where you lose all of your guest permissions when your session is invalidated.
2016-12-23 12:35:22 +00:00
Azareal 78a6eae0e8 Added the Group Permissions system.
Added the account activation system (just manual activations, email ones are coming later o.o).
Changed the benchmark test to an interface{} struct versus a typed one.
Changed the compiled template holders from a map of functions to handle variables.
Added elses for loops in the template compiler.
Added the list setting type.
Added friendlier values to the setting page :)
Added a link to the profile on the User Manager and new mini-tag mark-up to go with it.
2016-12-21 02:30:32 +00:00
Azareal b9885e9d7a Simplified adding variant hooks.
The benchmark now uses ten replies instead of one for a more relevant result.
Slices are now used instead of maps for itemLists.
The compiled template engine now supports slice loops.
More routes are compiled now.
Fixed a bug with the sorting of the itemLists in the templates.
Guests can no longer see the reply creation forms.
Fixed the notice system.
2016-12-18 12:56:06 +00:00
Azareal 2b9a9704fb Improved performance dramatically with the compiled templates.
Added the benchmark script.
The template generator now tracks the variables which are used the most in a template.
2016-12-17 03:39:53 +00:00
Azareal 7b1f27bf41 Added the ability to compile templates down to Pure Go code.
I'm slowly rolling this feature out to the various routes and doing tests.

Added the notice system.
Added the "You are banned" notice.
Added the Sendmail experimental plugin for sending emails without needing a SMTP server.
Added the debug flag for tuning down the amount of noise in the console.
Converted a system notice over to the notice system.
Changed the Activation Function signature to allow it to return errors which abort the process of plugin activation.
Plugins can now set tags. These will be visible in the Plugin Manager at a later date to specify a small snippet of additional information.
Variadic hooks are now first class citizens of the Plugin API rather than just an experiment.
SessionCheck() and the new SimpleSessionCheck() can now halt further processing of a route.
Deleted plugins are no longer shown on the Plugin Manager.
The registration form no longer allows users with blank names, emails or passwords to register.
The registration form now blocks some extremely common passwords.
Added the new status CSS to the /forum/ route.
Simplified some of the range loops in the templates.
2016-12-16 10:37:42 +00:00
Azareal 086239f88c Added the User Manager.
Added the activation and deactivation handlers to plugins.
Experimenting to see the best way of implementing variadic hooks.
Added the ability to deactivate plugins.
Added the preparse_preassign and parse_assign parser hooks.
Added a simple Markdown plugin.
Added the group tag to the profiles.
Improved the open / close status on /topics/
Added the ability to report profile comments.
Added the report_preassign vhook. This is probably going to be changed.
2016-12-13 02:14:14 +00:00
Azareal ec2c02d7c9 Added the plugin system.
Added the report system.
Rebranded the project.
Improved the installation instructions.
Changed the open / close status CSS.

Added the Hello World plugin.
Added the Skeleton plugin.
2016-12-11 16:06:17 +00:00
Azareal b2e3591997 Added URL tags & the settings system.
Moved the database logic out of main.go and into mysql.go
Tweaked the CSS.
Banned users can no longer log out.
2016-12-09 13:46:29 +00:00
Azareal 5296cc0b14 Added the new features to the README. 2016-12-08 14:24:19 +00:00
Azareal 12abd657e1 Added emojis. The emoji picker is coming soon, as is the font file. More emojis coming soon ^_^
Added the ability to ban and unban users.

Improved the installation instructions.
Changed the collation of the tables from utf8_general_ci to utf8mb4_general_ci.
Changed the group ID order.
Custom pages are now templates rather than little snippets being inserted into a template.
Changed the collation of the driver to utf8mb4_general_ci.
Added a default_group config setting.
Ban flag is overwritten for admins and super mods.
2016-12-08 14:11:18 +00:00
Azareal 6a320edbb4 Added the ability to assign users as moderators without also giving them the administrative tools.
Profile owners can now moderate their own profiles.
Fixed an issue with database entries being set as null.
A message now appears when there aren't any topics in a forum or in the global topics list.
Added the link to the current user's profile to the main menu.

Database Changes.
not nulled some columns.
Added is_mod column to users_groups.
Added the Moderator usergroup.
2016-12-07 13:46:14 +00:00
Azareal 72d7beefe9 Added the profile system.
Added the profile comment system.
Added group tags.
Improved the avatar placement logic.
Users without avatars will now get noavatars. Customisable in config.go
Only admins can see the Control Panel link now.
Fixed a problem with Git not including /uploads/ which can crash the program.

Database changes:
Added active column to forums.
Added tag column to users_groups.
Added the users_replies table.
Commented out the replies_reports table.
2016-12-07 09:34:09 +00:00
Azareal 30ecdf8d93 Added the forum cache. The rest of the code now uses it instead than firing queries on every request.
Added the ability for admins to delete forums.
Added the ability for admins to edit forums.
Added the Uncategorised Forum for topics with an ID of 0. Possibly for deleted forums in the future?
Added the uncategorised forum visibility switch.
Creating forums now has an anti-CSRF session check. The same is true with the newly implemented forum deletion and modification features.
Cleaned up some of the error code.
2016-12-06 10:26:48 +00:00
Azareal 84cbb3a5d5 Added grosolo.exe 2016-12-05 10:51:27 +00:00
Azareal f38e6166aa Merge branch 'master' of https://github.com/Azareal/Grosolo.git 2016-12-05 10:45:06 +00:00
Azareal ba3dcee93f Added tips on how to install Go and MySQL / MariaDB. 2016-12-05 10:44:19 +00:00
Azareal 1e98e92fb6 Delete grosolo.exe
Ahem. I just removed you with .gitignore
2016-12-05 07:41:42 +00:00
Azareal 86817ae966 grosolo.exe doesn't work on computers other than the one which built it.
You will have to build your own with build.bat or the go build command
2016-12-05 07:40:13 +00:00
Azareal 0e7675073f Moved the images into their own little home ^_^ 2016-12-05 07:34:05 +00:00
Azareal 689b1a804b Static files are now served from memory. This feature's a little experimental, so it will need a lot of testing i.i
Added an executable file. Only works on Windows, if it doesn't work, then try building it for yourself with build.bat or go build
Tweaked run.bat to make it more firewall friendly. It now generates an executable.
Moved the files around to make it more organised.
Added build.bat which you can use to build the program for you and install the libraries the software depends on.
2016-12-05 07:21:17 +00:00
Azareal dc77c43996 Added the ability for admins to create forums :)
Banned users can no longer create replies or topics o.o
Fixed a bug where forums with no content threw an error.
Added report buttons. They don't do anything yet.
Is_Admin checks take into account whether the user's group has Is_Admin now.
2016-12-04 10:44:28 +00:00
Azareal 1f6e585296 Admins now show up in purple on posts.
Added a .gitignore file.
Added group caching.
Improved the forum list.
Added the Member group.
Opening posts are now parsed properly.
Fixed a bug where the avatar of the opening poster was applied to everyone.
Only admins can see moderation options now.
2016-12-04 06:16:59 +00:00
Azareal 771af02674 Added the forums.
Added the forum list.
Added the forum view.
Added a relative time utility function.
2016-12-03 13:45:08 +00:00
Azareal 82b351e1d7 Fixed the bug where errors get sent in plaintext rather than as formatted HTML. 2016-12-03 11:06:47 +00:00
Azareal 8ff76d1bc8 Improved the CSS for the usernames and moderation buttons.
Stickies now show up in yellow on the topic list and in topics.
The topic list is now sorted by stickies, then the date of the last reply, then the date it was originally created.
Added the ability to stick and unstick topics.
Added the ability to delete topics.
2016-12-03 10:25:39 +00:00
Azareal 77c291bc34 You can now change your username.
You can now control which route the home page will be mapped to via config.go
Added the parse_message function for future purposes.
Improved the topic list.
2016-12-03 08:09:40 +00:00
Azareal a1253907c8 Git didn't include these for some reason x.x 2016-12-03 05:00:21 +00:00
Azareal 2c6a20f259 Fixed topic creation.
Fixed a text overflow bug.
Fixed a newline formatting bug.
Fixed an avatar rendering bug.
2016-12-03 04:50:35 +00:00
Azareal 7a49ff5194 Don't forget to import data.sql 2016-12-02 15:10:28 +00:00
Azareal 9bafab7a12 Added the ability to upload and use avatars. 2016-12-02 15:03:31 +00:00
Azareal 7a1a468f93 You can now change your password. 2016-12-02 11:00:07 +00:00
Azareal d77606506c Fixed logging in.
Added a new configuration variable.
2016-12-02 09:29:45 +00:00
Azareal 509082fad3 Made it easier to configure.
Seperated admins from super admins.
2016-12-02 08:07:56 +00:00
Azareal 74ec4ec869 Adding the files. 2016-12-02 07:38:54 +00:00
Azareal 721faa908b Update README.md 2016-12-02 07:32:57 +00:00
Azareal 3844bb443d Initial commit 2016-12-02 07:23:26 +00:00