Commit Graph

172 Commits

Author SHA1 Message Date
Azareal d99fd01ed9 Rewrote the template generator to make it more flexible and easier to debug.
The template generator now has better support for pointers to primitives.
Tweaked some CSS.
2018-11-18 15:28:27 +10:00
Azareal 17f85ceccf The time it took for the route to be processed is shown in the footer in the Nox Theme for admins now
Don't waste queries on groups without any users for the topic list.
Bypass the GzipResponseWriter in RunThemeTemplate, so we get indirected through fewer layers of Write calls.
Added an experimental flag for disabling fsnotify.
Refactored the topic benchmarks to make them a little more flexible.
Refactored a couple of benchmarks to reduce the amount of boilerplate.
Fixed a bug in the forum list for Nox where topic titles broke onto multiple lines.
Refactored the template transpiler to reduce the amount of boilerplate for generating template functions.
2018-11-17 12:36:02 +10:00
Azareal 4759ec9c4c The settings should be validated properly now when they're updated.
Added more features to RouteError and RouteErrorImpl to help in suppressing sensitive information.
Refactored the setting update logic, so the settings are reloaded all at once rather than updated individually.
Renamed the router variables in the generated router to r to reduce the number of characters we have to type there.
Renamed some of the r variables in the generated router to req for consistency sake.
2018-11-13 16:51:34 +10:00
Azareal 9f273a99f5 Trying to reduce the amount of UserCheck() boilerplate in the routes.
Reduced the amount of boilerplate in routes with renderTemplate()
Reduced the amount of boilerplate in routes with ParseSEOURL()
Removed some dated commented bits of code.
Used StashConfig in a few more places in the benchmarks to reduce the amount of boilerplate.

Renamed the pre_render_forum_list hook to pre_render_forums.
Renamed the pre_render_topic_list hook to pre_render_topics.
Renamed a few benchmark variables to simplify the code.
2018-11-12 19:23:36 +10:00
Azareal 83dc26aa43 Fixed the JS templates. 2018-11-01 16:51:04 +10:00
Azareal 76cfcb509b Moved the phrase logic to the phrases package.
Removed some initialisation boilerplate from the test code.
De-duplicated some of the common portions of the benchmarks.
Added miscinit to reduce the amount of initialisation boilerplate in the tests and to better catch initialisation errors.
Added a profile benchmark.
2018-11-01 16:43:56 +10:00
Azareal bf851bd9fc We now use Go 1.11 modules. This should help with build times, deployment and development, although it does mean that the minimum requirement for Gosora has been bumped up from Go 1.10 to Go 1.11
Added support for dyntmpl to the template system.
The Account Dashboard now sort of uses dyntmpl, more work needed here.
Renamed the pre_render_view_topic hook to pre_render_topic.
Added the GetCurrentLangPack() function.
Added the alerts_no_new_alerts phrase.
Added the account_level_list phrase.

Refactored the route rename logic in the patcher to cut down on the amount of boilerplate.
Added more route renames to the patcher. You will need to run the patcher / updater in this commit.
2018-10-27 13:40:36 +10:00
Azareal 35b1613005 Make the level bars in the profiles look less ugly. 2018-10-24 22:54:07 +10:00
Azareal 876ae4e245 Refactored the plugin system to use a hook table. This should help to reduce the probability of data races and strange bugs, as-well as helping to abstract certain details, so future changes are less likely to break things.
Fixed the missing background for the create topic non-JS page in Nox.
The non-JS create topic page now has a localised title.
2018-10-21 23:54:32 +10:00
Azareal 218070fceb Added the DisableJSAntispam config.json setting. 2018-10-16 20:02:51 +10:00
Azareal c15f02396a Fixed a bug where a user's tag can get desynced with their group. 2018-10-14 16:16:42 +10:00
Azareal 34b8d8dc3c Fixed a bug where group permissions didn't update until Gosora was restarted.
The profile titles can now be localised.
The profile owner tag can now be localised.

Added some changes I forgot to push in the previous commit.
2018-10-14 16:09:25 +10:00
Azareal aabfbe3622 Highlight the currently active zone in the menu for Nox.
Replaced the Level Progress widget in the Account Dashboard with a similar progressbar to the one in the level progress page.
2018-10-14 15:08:44 +10:00
Azareal 96a5a9e872 Fixed a bug where phrases would sometimes get entitised.
Fixed a couple of spots which didn't have phrases.
Removed inline CSS in a couple of places and added a missing tooltip.

Added the account_username_save phrase.
2018-10-11 07:29:38 +10:00
Azareal 05ab585d41 Added the level list page.
Levels can now be localised individually.
Added the level template function.
Fixed the padding on alerts without avatars.
The level data is now in it's own block in the profiles.
Removed three level phrases and replaced them with the new Level API.
2018-10-10 17:33:51 +10:00
Azareal de78268b20 Added level progress indicators, still WIP.
Fixed a bug where GetLevelScore wouldn't work and simplified it slightly.
Removed the account_dash_next_level phrase.
Added the account_dash_level phrase.
2018-10-08 15:34:25 +10:00
Azareal f721780c0d Refactored some of the reply tests.
Added some topic post count tests.
Added a very simple action post test.

Changed the signature of *Topic.CreateActionReply to take an integer rather than a *User.
2018-10-08 14:15:06 +10:00
Azareal 644bba36e3 Localised more alert strings.
Renamed most of the alert phrases.
Fixes #3 - Default value issue with MySQL.
Fixed a bug where pages would't load with HTTPS disabled.
2018-10-06 23:14:11 +10:00
Azareal 436c53f653 The user box on Nox should be highlighted now when there's a new alert.
Removed some notes as they're not really needed now that I've refactored the alert builder.
2018-10-06 16:35:53 +10:00
Azareal 0b44d69efc The alert list can be localised now.
Removed a bit more boilerplate in the unit tests.
Fixed a bug where the alert list wouldn't load.
2018-10-05 17:41:28 +10:00
Azareal be66ac4c8d Added tests for the word counter. 2018-10-04 19:01:07 +10:00
Azareal beb2d99469 Refactored the user tests to reduce the amount of boilerplate.
Refactored BuildAlert to call into a function rather than building the alert strings itself.
Added a couple of unicode related unit tests.
2018-10-04 12:58:01 +10:00
Azareal 0039b9c851 Reduced the amount of boilerplate in panel.Dashboard.
Localised a few things in panel.Dashboard.

Added the GetTmplPhrasef function.
2018-10-02 16:56:24 +10:00
Azareal 6634f3f64b All the control panel routes have been moved to /routes/panel/ now.
Moved the software version to common.go for better accessibility.
2018-10-02 15:03:20 +10:00
Azareal b2e97e47c1 Moved the last control panel theme manager route into /routes/panel/
Added the UpdateDefaultTheme function.

Renamed panelRenderTemplate to renderTemplate.
Renamed panelSuccessRedirect to successRedirect.
Reduced the amount of boilerplate in panel.GroupsEdit with renderTemplate.
Renamed the pre_render_panel_edit_group hook to pre_render_panel_group_edit.
Reduced the amount of boilerplate in panel.GroupsEditPerms with renderTemplate.
Renamed the pre_render_panel_edit_group_perms hook to pre_render_panel_group_edit_perms.

Fixed a bug where the active status for themes didn't get loaded at start-up.
Fixed a theoretical deadlock in NewThemeList.
Updated CONTRIBUTING.md
2018-10-02 14:09:17 +10:00
Azareal 322a46bcb5 Moved the control panel group routes into /routes/panel/
Added the Update, UpdatePerms and CopyPtr methods to *Group.
2018-09-30 10:08:27 +10:00
Azareal dfca660dfc Localised the common error phrases.
The no permissions error page has a less generic title now.

Fixed a bug where the title didn't show up for the not found page.
2018-09-28 17:19:51 +10:00
Azareal d8d5bc0573 Localised the not found error. 2018-09-27 20:53:40 +10:00
Azareal 59497de8dc Flatten out the Errors map in the phrase files. 2018-09-27 20:29:16 +10:00
Azareal 9005b10be1 Fixed the live topic list after Most Viewed broke it 2018-09-26 18:05:25 +10:00
Azareal 859ed2c730 Finished the Most Viewed Page for Nox.
Added three phrases for topic_list.
Moved the topic_middle_inside suffix phrases from the CSS files into the template proper.
Removed a newline in topic_middle_inside and used flex instead.
The link_select drop-down is now only visible when someone clicks on the link.
Tweaked the .topic_forum line height for Cosora.
Tweaked the .topic_view_count font size for Cosora.
2018-09-26 17:46:30 +10:00
Azareal 7db4c60470 Simplify these calls with a closure. 2018-09-24 17:52:06 +10:00
Azareal 15b3ad07fa Try to eliminate some of these debug comments. 2018-09-24 09:42:17 +10:00
Azareal 00059194a5 Punctuation should demarcate word endings too. 2018-09-24 09:40:52 +10:00
Azareal a1403d495d Let's see how we can best do this o-o 2018-09-20 18:56:50 +10:00
Azareal eb6db07c30 Fixed a bug in the URL parser where it would demand a double newline rather than a single. 2018-09-20 16:47:54 +10:00
Azareal e9645c07bd Added support for simple named mentions.
Added a GetByName method to the UserStore.
Added eight mention tests.

Added the tryStepBackward function, might get removed.
Removed some superfluous commented debug statements.
2018-09-20 16:31:09 +10:00
Azareal 47d1010a53 Added the AddHashLinkType function so that plugins can add custom hash link types in an efficient manner.
Moved the hashLinkMap, etc. out of ParseMessage so that we can make them more pluggable.
The first word in usernames can no longer be purely numeric.
Added some ID mention tests.
2018-09-20 14:36:50 +10:00
Azareal f6b889b53b # is now allowed in URLs.
Added a few hashlink tests.
2018-09-20 12:58:06 +10:00
Azareal ca322a1456 Begin refactoring the hashlinks to make them more pluggable. 2018-09-20 12:44:34 +10:00
Azareal 46f03775c9 Use a Go 1.10 String Builder instead of byte slices in ParseMessage.
Removed a couple of unnecessary lines from global.js
2018-09-20 11:51:18 +10:00
Azareal 6941786490 Reduce the amount of boilerplate for images in the parser. 2018-09-19 16:59:07 +10:00
Azareal 335fe4fdbe Little useful note and began work on v0.2.0 2018-09-19 16:41:36 +10:00
Azareal 225a2cc8a1 0.1.0 tag, checkpoint release.
Upped the user cache capacity and topic cache capacity.
More resource management work. WIP.
Added Hyperdrive to the experimental folder. It doesn't really work right now, but I'd like to track it's progress.
Eliminated a line in global.js
2018-09-19 16:09:03 +10:00
Azareal cd89e836a1 Some resource management work and performance improvements.
Added the DeallocOverflow and BulkRemove methods to UserCache.
Added the HasUser method to WsHubImpl.
Added a hot path for the common case of a single uncached item in BulkGetMap in DefaultUserStore.
2018-09-13 17:41:01 +10:00
Azareal 1854010840 Fixed a bug where nil sockets weren't getting skipped.
Added some additional sanity checks.
2018-09-12 19:50:57 +10:00
Azareal 646c1f2545 Don't prematurely load topics just to increment their cached view counts. 2018-09-11 22:21:15 +10:00
Azareal 3822fe12d2 Refactored the client-side alert logic.
Exported WsHubImpl's PushMessage method.
Fixed a bug in WSUser's WriteAll and WriteToPage methods where they wouldn't skip over the nil sockets.
2018-09-08 22:47:37 +10:00
Azareal e22a96f53e Oops, make sure those locks are released. 2018-09-08 15:29:51 +10:00
Azareal dfc60ec214 Added support for multiple subscribers mapped to a single user in the WebSockets Component. Untested. 2018-09-08 15:12:48 +10:00