Commit Graph

702 Commits

Author SHA1 Message Date
Azareal 266f17c23d Revamped the Nox Account Manager and Control Panel Menus.
The topics list template is now generated by loggedin.
Replaced some uses of {{if ne .CurrentUser.ID 0}} with {{if .CurrentUser.Loggedin}}
Fixed a bug in the profiles where the comment creation form was shown to guests.
Added the profile_comments_form_guest phrase.
2018-11-29 07:46:53 +10:00
Azareal 5009a8b04c Optimise away some more bits we don't need for guests and members. 2018-11-27 17:40:13 +10:00
Azareal 50fef78078 Split the transpiled topic alt route into a guest part and a member part for extra speed.
Fixed a bug in the template fragment coalescer.
Added the loadTemplate function to help reduce the amount of duplicated code in the template generator.
Added a couple of helper methods to CContext to reduce the amount of possibly error prone boilerplate.
2018-11-26 15:08:10 +10:00
Azareal 826330035f Fixed text flowing out of the boxes on the forums page on Nox. 2018-11-23 18:58:34 +10:00
Azareal d6b153baf4 Fixed a bug where you couldn't create topics from the forum pages. 2018-11-23 18:31:40 +10:00
Azareal 3079080acf Refactor these shell scripts.
Bumped up the version of MariaDB for Travis.
2018-11-22 18:50:53 +10:00
Azareal 45465ef210 Gosora should build on Linux again, for some reason, it needs gcc though, must be one of the dependencies. 2018-11-22 18:08:41 +10:00
Azareal 52c8be4173 Variables which are computed multiple times in templates should only be computed once now.
Enabled the Watchdog Goroutine.
Moved a couple of parser tests into their own file.
Eliminated the hard-coded URLs in TestParser()
Refactored the alert system so that a specific actor is only loaded once rather than once for each alert. This isn't a problem in practice due to the user cache, but it might be on high traffic sites.
Don't run HandleServerSync() on single server setups.
Don't load the user in GetTopicUser(), if the topic creator is the current user.
Fixed a bug in the template generator where endloop nodes were being pushed instead of endif ones.
2018-11-22 17:21:43 +10:00
Azareal 87b3f9107d Up the default cache capacity. 2018-11-22 15:36:11 +10:00
Azareal e67009d4e3 Move ShowAttachment into it's own file. 2018-11-20 14:07:36 +10:00
Azareal 352a262866 Only cache public attachments in the browser and CDNs.
The browser might overrule it anyway, if it's really obvious that it should be cached.
This is mainly so Cloudflare, etc. don't serve sensitive documents to guests.
2018-11-20 14:00:32 +10:00
Azareal 1aac6f1268 Greatly reduced the number of w.Write calls in the generated templates.
The topic list should only be rebuilt for a short window after something related to it changes on single server setups.
Swapped out the RebuildGroupPermissions call in UpdatePerms with a more general and versable Groups.Reload call.
The template generator now use log instead of fmt for writing debug logs.
2018-11-20 09:06:15 +10:00
Azareal f508ef9898 Moved CContext and some related structs into their own file. 2018-11-18 19:28:26 +10:00
Azareal 5a459ba780 Have a buffer for the fragments too, so we can add an optimisation pass. 2018-11-18 17:14:18 +10:00
Azareal 21b2c54166 Better template debugging. 2018-11-18 15:43:10 +10:00
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 8e997048e3 Use MicroAvatar instead of Avatar where possible to reduce the amount of time spent processing images on the client.
Removed the site suffix from the default noavatar URL to increase the amount of inter-site caching.
2018-11-15 11:01:26 +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 4040417320 Refactored the route declarations. 2018-11-13 14:43:05 +10:00
Azareal 2049948b0f Fixed a bug where the topic middle suffixes weren't showing up on the forum pages.
Added a NoHeader() I forgot.
2018-11-12 19:38:46 +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 f5a0e3386b Action posts can now be localised.
Tweaked the updating instructions.
2018-10-27 14:55:53 +10:00
Azareal ffe06afb1b No point in running tests for Go 1.10 now. 2018-10-27 14:19:18 +10:00
Azareal 992115c22e Fixed the path to install for tests. 2018-10-27 14:16:34 +10:00
Azareal 5ab20e0adf Reduce the number of go gets and fix Travis. 2018-10-27 14:12:13 +10:00
Azareal a278170766 Fixed the patcher. 2018-10-27 13:55:02 +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 c451358156 Improved the level UI on the Account Dashboard.
The new level UI shouldn't be broken on the other themes now.
2018-10-11 19:50:48 +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 4d75c543d2 Refactored most of the string-string tests to reduce the amount of boilerplate. 2018-10-08 14:38:51 +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 2acf4e1568 Added simple tests for the modlogs and adminlogs. 2018-10-08 12:51:59 +10:00
Azareal 650a8a9be1 Added tests for the topic methods and topic creation.
Added a few more cases to TestWordCount.
2018-10-07 20:46:49 +10:00
Azareal ad61b5d8b2 MySQL being stupid x.x - #3 2018-10-07 11:33:03 +10:00
Azareal b6220d03d3 Don't forget to commit the rebuilt queries - #3 2018-10-07 11:24:53 +10:00
Azareal ebbfa7d247 Bumped up the version of MariaDB on Travis.
Replaced a couple of expects with expectNilErrs so we don't lose the original errors messages in those tests.
Fixed a couple more MySQL default value issues.
2018-10-07 00:02:52 +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