Commit Graph

19 Commits

Author SHA1 Message Date
Azareal 3a68e07885 You can now link to a topic with #tid-{topicid}
Shrunk the posts in Tempra Simple.
Fixed a problem with the buttons for Tempra Simple on mobile.
Tweaked the padding on the quotes.
Fixed a browser parser bug where the browsers erroneously terminate a </p> upon finding a </div> produced by plugin_bbcode.
Fixed a problem with plugin_bbcode where the HTML tags weren't getting closed.
2017-03-12 07:18:12 +00:00
Azareal cf480947d3 I'm still working on alerts. I've worked out the client-side UI for Cosmo, the UI will be tweaked for the other themes shortly. The client-side JS also now pulls the alerts from the server.
The errors are now sent properly via JSON.
The success JSON messages are now sent properly.
Optimised the message for guests.
Added the opthead class for adding a nice Cosmo specific enhancement.
2017-03-01 11:36:50 +00:00
Azareal 9fce51a3d7 Added the InternalErrorJS and LocalErrorJS error handler functions.
Hid the themes which aren't under construction yet from the Theme Manager.
Fixed a bug in the BBCode parser where every post had ten spaces appended to them.
Added the get_reply() internal API function for plugins to make use of.
Added the bell to the theme.
Fixed some bits of the Cosmo theme where the rowhead wasn't appearing.
Added a "Don't have an account?" link to the login page.

I began work on the alerts system, I took a little break, so it's a little further behind than you might expect, but it shouldn't take too long for me to finish it up.
I haven't finished the back-end portions of it yet, so there's not much to see yet!
2017-02-28 09:27:28 +00:00
Azareal 399128c208 Added the topic and user memory caches. Currently used in an extremely limited way, we plan to expand this!
Added a template minifier which strips out many types of whitespace.
Stop the router from blocking the other goroutines.
Content is no longer an interface{} in the TopicUser and Reply structs
Allow plugins to add new routes without any potential race coditions occuring
Use non-breaking spaces in the topic view to make it harder for the minifier to break things.
2017-02-11 14:51:16 +00:00
Azareal 534ef10194 You can now upvote topics and replies. The number of upvotes is visible on the posts.
The static resources now support Gzip Compression. Software-wide support is coming with the upcoming router rewrite!
Revamped Tempra Simple's topic view. We now use emojis instead of text for the fields. Experimental.
Simplified the json permissions in the installer.
Fixed some places where the wrong error handler is used.
Fixed a bug in the word counter where it was off by one.
The word count is now tracked by the topics and replies.
2017-02-10 13:39:13 +00:00
Azareal 0e5d0e649e Relative times are now shown for all the topics on /topics/ and /forum/
You can now see which forum the topics are in on the topic list.
Relative times are now calculated in real-time rather than once at start-up. I'm not sure how it ended up like that.
Fixed an issue with the lastReplyAt field not being populated for topics.
We now have relative times for weeks and months.
2017-02-06 04:52:19 +00:00
Azareal dca8670eed Per-Forum Permissions work everywhere now.
Removed some unnecessary user parameters from the error handlers.
Added a PreError type for when the user data isn't available yet.
2017-02-05 16:36:54 +00:00
Azareal df5f70ee6b You can now post in any forum you want via the Board selector.
Added a lock indicator for forums you don't have permission to post in.
Added a New Topic option in forums you have permission to post in.
General is now the default forum for topics.
/topics/ no longer shows topics for forums you aren't able to access.
2017-02-05 14:41:53 +00:00
Azareal d4ad7f1a4c Dramatically improved Gosora's speed by two to four times.
Admins and mods can now see the IP Addresses of users.
The last IP Address of a user is now tracked.
The IP Addresses a user used to create replies and topics are now tracked.
Dramatically improved the speed of templates with the new Fragment System. More optimisations to come!
Decreased the memory usage of compiled templates with the new Fragment System.
build.bat now provides more information on what it's doing.
Added the `go generate` command to the .bat files in preparation for the future.
We're currently in the process of overhauling the benchmark system to run tests in parallel rather than serially. More news on that later.
We're also looking into the best way of integrating pprof with the benchmarks for detailed profiling.
The internal and notfound errors are now static pages.
Internal Error pages are now served properly.
Optimised most of the errors.
Added an internal flag for checking if the plugins have been initialised yet. Mainly for tests.
Decoupled the global initialisation code from the tests.
Removed URL Tags from Tempra Simple. We're pondering over how to re-introduce this in a less intrusive way.
Template file writing is now multi-threaded.
The number of maximum open connections is now explicitly set.
Removed the Name field from the page struct.
Turned some of the most frequently hit queries into prepared statements.
Added the [rand] BBCode.
Converted the NoticeList map into a slice.
Added the missing_tag error type to the [url] tag.
error_notfound is now used for when the router can't find a route.
Fixed a bug in the custom page route where both the page AND the error is served when the page doesn't exist.
Removed some deferrals.
Reduced the number of allocations on the topic page.
run.bat now provides more information on what it's doing.
2017-01-17 07:55:46 +00:00
Azareal 2f50da8cd8 Dramatically improved mobile friendliness on Tempra Conflux, Cosmo Conflux and Cosmo themes.
Made minor improvements to the mobile friendliness on the Tempra Simple theme.
Added levels to the other three themes.
Added the group tags to the Tempra Conflux and Cosmo Conflux themes.
Added more screenshots and updated some of the existing ones.
Made a small cosmetic improvement to the theme list.
2017-01-12 14:01:35 +00:00
Azareal b7c89fd020 Added the Level System.
The .bat files now exit upon encountering an error.
Post, bigpost, megapost, and topic stats are now tracked for each user.
Added the bigpost_min_chars and megapost_min_chars settings. Probably needs to be renamed.
Added the Levels test. Run `go test -run "Levels"`
The installer now validates the inputted server port.
Added a word counter utility function.
The template engine now borks less on variable nodes.
Added the lt, gt, ge, eq and ne to the template engine. I'm fairly sure eq was already in there, but things get handled differently depending on what type of node it is.
Eliminated more "success" variables by converting the errors over into InternalError() and LocalErrors()
2017-01-12 02:55:08 +00:00
Azareal 7833ad72fc [url] tags now use a custom parser.
Added more images and updated others.
The [code] tag is now enabled by default.
Fixed some visual flaws in the profiles.
Profile comments are no longer overriden by Tempra Conflux's post layout CSS.
A lock emoji is now used instead of [Status|closed] blocks.
Moved more inline CSS into the stylesheets.
Usernames now link to the profiles in the Tempra Conflux, Cosmo and Cosmo Conflux themes.
2017-01-08 16:02:19 +00:00
Azareal bbbd0c381f Added the Cosmo and Cosmo Conflux themes. Freshly ported over from one of my other projects.
The porting is still underway, part of it relies on functionality which hasn't be implemented in Gosora yet like sidebars and alerts.

Restructured the BBCode parser plugin.
Added the [code] tag to the BBCode parser. Disabled by default for now.
Added a benchmark for comparing performance between when [code] is enabled and when it isn't.
Tweaked the templates to make them more flexible, thus allowing a wider variety of themes.
Images of the themes can now be found in the Theme Manager.
There's an emoji on each theme row to show which themes are mobile friendly and which aren't.
Fixed editing and deleting posts on Tempra Conflux.
Moved a large portion of the inline CSS in the topic_alt template into the stylesheets.
2017-01-07 06:31:04 +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 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