Commit Graph

944 Commits

Author SHA1 Message Date
Azareal f1c418bd13 Refactored the routing logic.
Continued refactoring the prequeries.
Continued work on the profiles.
Moved more logic out of the routes.
2017-11-12 07:18:25 +00:00
Azareal 2047fed0b9 Renamed a few querygen structs.
Moved the accumulator sub-builders into their own file.
Implemented OO methods for the prebuilders.

Began converting the generated queries over to the OO methods.
2017-11-12 05:25:04 +00:00
Azareal 2545d4adde Converted more queries over to the new OO builder syntax.
Renamed accBuilder to Accumulator so that it can be used in type hints outside the query generator.
The DbInit accumulator is now initialised in the caller rather than the callee.
2017-11-12 03:29:05 +00:00
Azareal 6bae378db0 Moved the modlog and admin log logic to their own file.
Refactored the code to use the new builder syntax.
Fixed the DbInit logic.
Made sure the prepared statements are cleaned up.
Added the AdminOnly middleware and added it to the routes.
Added the Query method to the selectBuilder.
2017-11-11 23:34:27 +00:00
Azareal 7ac3de8299 Added an alternate builder syntax and started using it in a few places. 2017-11-11 08:46:30 +00:00
Azareal fb8fa10570 Let plugins define imports to custom templates.
Things should work now.
2017-11-11 06:33:08 +00:00
Azareal d2a8fb1267 Fixed the template transpiler.
Fixed the PreRoute middleware.
Renamed makeDummyForum to BlankForum.

Began adding the plugin_guilds routers to the template transpiler for extra speed.
2017-11-11 05:22:33 +00:00
Azareal f30ea7a9bb Finished moving the files into the subpackage, this should open more doors to us.
Moved more queries out of the global stmt holder.
Refactored several things.
2017-11-11 04:06:16 +00:00
Azareal 10e681f15f Removed dead code.
Moved more files into subpackages 2/?
2017-11-10 03:43:38 +00:00
Azareal 20bb909c54 Moving the files into subpackages 1/?
Moved more routes into the router generator.
Renamed a few of the routes.
Refactored the router generator.
Fixed PreRoute.

Began work on letting plugins plug into the template transpiler.
2017-11-10 03:33:11 +00:00
Azareal f8e892da20 Added the Rez Image Resizer as a dependency to be used later.
Is Codebeat fixed now?
Fixed a data race in PreRoute and refactored away the duplicate IP Address loads.
Renamed some of the variables in the query generator.
Slight bit more progress on Cosora.
2017-11-10 00:16:15 +00:00
Azareal 34ca7de946 Added the Not method to the router generator.
Refactored the router generator.

Added the NoBanned and NoSessionMismatch middlewares.
Removed some of the implicit returns.
Refactored some of the routes and their associated stores.
Added more Codebeat exclusions.
Added the AddReply method to *Topic.
Added the Like method to *Topic.
MemberOnly now emits a LoginRequired error rather than a generic NoPermissions error.

Made progress with Cosora, this time with the profile system.
2017-11-08 07:28:33 +00:00
Azareal 920c1aad0f Removed the rest of the generated files from Codebeat. 2017-11-08 00:35:27 +00:00
Azareal 57cc7e0d54 Remove some files from Codebeat. 2017-11-08 00:28:50 +00:00
Azareal 3b0fba1b17 Simplified the template generator logging code.
Renamed a few of the functions in the template generator.
2017-11-08 00:12:50 +00:00
Azareal ed2293ac0e test 2017-11-07 23:00:14 +00:00
Azareal e2c48c58ba Moved the create statement into the TopicStore.
Refactored the template generator.
Began improving Cosora again.
2017-11-07 22:38:15 +00:00
Azareal 569b424ac8 Did a bit of refactoring on the template system.
Refactored the ReplyStore.
Added the Create method to the ProfileReplyStore.
Fixed a potential issue with the topics and replies generated by the installer.
Refactored the accumulator.
Refactored global.js

Added more tests.
2017-11-06 16:24:45 +00:00
Azareal aab949cb2d Split reply.go into reply.go, reply_store.go, and profile_reply_store.go 2017-11-06 07:44:08 +00:00
Azareal 6b64a2e28d Refactored the stores to use the accumulator.
Fixed the accumulator.
2017-11-06 07:23:32 +00:00
Azareal 01239f82f1 Added the Accumulator to the Builder.
Renamed LoadThemes to LoadThemeActiveStatus.
Moved more statements into the stores.
More errors are propagated upwards.
Added an interface for the ForumPermsStore.
Replaced a hard-coded query which somehow managed to survive.
Replaced a few redundant Markdown tests with more targetted ones.
Added a few new BBCode tests.
Fixed a few bugs in the Markdown Parser.
2017-11-06 04:02:35 +00:00
Azareal 3fa9bf7373 I've revamped the query generator to reduce the number of globals, this'll help us split up the software and plugins in the future.
Refactored the router.
Added the MemberOnly middleware and tests for it.
2017-11-05 09:55:34 +00:00
Azareal f5190e83ba More MySQL generator refactoring. 2017-11-05 03:58:19 +00:00
Azareal d0ffc4be78 Refactored a few bits and pieces.
Added Riot as a dependency, I'm still deciding over whether to use this or Bleve.
Tweaked the topic view for Cosora.
Fixed a crash bug in the group creator.
Moved a few things from permissions.go into the ForumPermsStore, more to come here!
Added more tests.
Refactored the MySQL Query Generator.
Refactored the BBCode Parser.
Moved the presets into the Phrase System.
2017-11-05 01:04:57 +00:00
Azareal d0363f3eb1 Refactored the GroupStore to make it more thread-safe.
Refactored the store initialisers to better propogate errors upwards.
Moved the user initialisation logic to a method on *User.
Added the Reload and GlobalCount methods to the GroupStore.
Added the CacheSet method to the GroupCache.

Renamed plugin_socialgroups to plugin_guilds 3/3
2017-11-02 13:35:19 +00:00
Azareal 3c13f4da7f Renamed plugin_socialgroups to plugin_guilds 2/3 2017-11-02 04:14:39 +00:00
Azareal f20a9966da Renamed plugin_socialgroups to plugin_guilds 1/3 2017-11-02 04:12:51 +00:00
Azareal 6f45c62815 We made more progress with topic views on Cosora. We accidentally broke Tempra Conflux's topic view in the process and we're planning to fix it in the following commit.
Added the ForumPermsStore.
Fixed the creation dates of the posts.
Added a skippable version of the vhooks.
Social Groups now work again, although I'm planning to refactor them ;)
Added more Markdown tests and fixed a few Markdown bugs.
2017-11-02 02:52:21 +00:00
Azareal 0361310eb2 Moved the forum permission cascade logic into it's own function.
Removed some redundant queries.
Refactored the router generator.
2017-10-31 07:26:44 +00:00
Azareal ca83771eb4 Travis doesn't like passwords 2017-10-31 01:27:38 +00:00
Azareal 9ad66ac882 Tweaked the config file to get Travis to work. 2017-10-31 01:22:05 +00:00
Azareal c3513fba54 We forgot to commit this before, oops. 2017-10-31 00:57:57 +00:00
Azareal 11260b22a4 Hmmm, maybe this? 2017-10-31 00:53:00 +00:00
Azareal 90cc069132 Tweak to see if Travis will let this run?
Fixes to the installer.
2017-10-31 00:33:14 +00:00
Azareal 868a57d6d2 Trying to get Travis to work.
Cleaned up some of the CSS and fixed the other themes.
2017-10-30 23:34:38 +00:00
Azareal 14a14b7e80 More work on Cosora, we have a screenshot of it up now, although it's super experimental at the moment.
This commit might be a little broken, another is coming to fix things up!

The topics list is now paginated.
Refactored the error handling system.
Added the Trumboyg WYSIWYG editor for Cosora.
Moved Delete() out of the TopicStore and into *Topic
You can now bulk delete and bulk lock topics on Cosora.
h1s are now formatted properly on Firefox.
Added more ARIA Labels.
SuperModOnly is now a piece of middleware for the Control Panel routes.
Refactored and extended the router generator.
Improved the SEO for the paginators.
Added bits of Microdata to improve SEO further.
Wrote benchmarks for users.Get() and users.BypassGet()
More errors are caught now.
You can now attach pcss files to posts.
Improved the error logging for JavaScript.
Topic list avatars now link to the associated profiles.
Added last poster avatars to the forum list.
2017-10-30 09:57:08 +00:00
Azareal f7942b42ac Continued the work on Cosora.
Trying to add support for Travis CI.

Added the NullUserStore for tests.
Moved more text out of the templates.
Removed an unnecessary dependency for Cosora.
Fixed a few more bugs in the MSSQL Adapter.
Disabled upserts for now, as it isn't working on MySQL.
Refactored the scheduled group logic to reduce the number of potential bugs and to stop using upserts.
Fixed many bugs in the Markdown Plugin.
Added the ability to escape Markdown.
Fixed a number of tests, commented unneccesary ones, and added new ones to probe for new problems.
Added the wink smiley.
Cleaned up some of the JavaScript.
Refactored the permissions logic to use transactions and avoid duplicating logic.
Added the ChangeRank method to the Group struct.
Added the ChangeGroup method to the User struct.
Added the currently unused LogWarning function.
Added the transaction versions of the builder methods. Better ones coming up soon!
The IsBanned flag is always set to false on mod and admin groups now.
Refactored the group creation logic to use transactions.
Fixed a bug in the group creator where new groups aren't visible to Exists().
The installer now drops tables for MySQL Databases, if they already exist to make it easier for us to run automated tests.
Added more ARIA Attributes.
2017-10-21 01:27:47 +01:00
Azareal da6ae8d7d4 Gosora now supports MSSQL (Microsoft SQL Server).
Fixed a bug with MemoryUserStore's length counter.
The upsert API is currently a confusing mess, we'll have it all fixed up soon.
Added the Delete method to the User struct.
Improved the test coverage for the user subsystem.
2017-10-16 08:32:58 +01:00
Azareal fdb6304e32 Mostly a mid-way technical commit to make reading diffs easier on me.
Split the relativeTime function into relativeTime and relativeTimeFromString.
Refactored the installer.
Made a lot of progress with PgSQL and MSSQL support, mostly MSSQL.
Made a lot of progress on the automated testing suite.
Added eqcss to the file extension list.
..depressed..
Fixed various bugs here and there.
gen_mysql.go is now properly excluded when the pgsql or mssql build tag is passed.
The BBCode plugin is now always initialised prior to it's test.
We've begun transitioning towards deserializing database times directly into time.Times rather than doing it every time on the spot.
Added more dev flags.
The tests now make use of a test database rather than the production database.
2017-10-14 08:39:22 +01:00
Azareal a09630c0dc Updated the README.
Fixed Tempra Conflux's responsiveness.
2017-10-12 04:54:30 +01:00
Azareal 97860d4f79 Began work on the new theme, Cosora.
Added the ReplyStore and the ProfileReplyStore.
Added more allowed file extensions for attachments.
The tif, webp, and apng extensions are now recognised as images.
Added the Delete method to the Reply struct.
Added the Like method to the Reply struct.
Refactored the topic list avatars to make things easier on Cosora.
The attachment cap should now work properly on topics.
You can now attach files to replies.
The Markdown parser now ignores URLs rather than mangling them.
Fixed a bug where themes weren't able to register custom resources.
Added the ability to embed images.
Added the ability to embed videos.
Made the requirements for URLs looser.

Misc improvements to the themes and templates.
2017-10-12 04:24:14 +01:00
Azareal 22650aad27 Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.

Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.

Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 11:20:28 +01:00
Azareal c0834ec7c0 Missed a few spots. 2017-09-29 05:42:35 +01:00
Azareal ef2ed96e63 Oopsies, need to update these with the new dependency. 2017-09-29 00:54:02 +01:00
Azareal 47963e10a9 Began work on support for JS Plugins.
Renamed the rrow_assign hook to topic_reply_row_assign and gave it access to more data.
Fixed a bug where the topic store wouldn't fetch the last reply time for a topic.
Refactored the process of adding and removing topics from and to a *Forum.
Fixed a bug where editing the opening post of a topic would yield a vast number of <br>s instead of blank lines.
Selecting text in Shadow now has it's own CSS instead of falling back onto the browser defaults.
Fixed a bug in Shadow where not all the headers filled up the space they should.
Fixed a bug in Shadow where the footer is broken on mobile.
Added an ARIA Label to the topic list.
Refactored the last poster logic to reduce the number of bugs.
Renamed ReplyShort to Reply and Reply to ReplyUser.
Added a Copy method to Reply, Group, Forum, User, and Topic.
Rewrote Hello World into something slightly more useful for new plugin devs to learn off.
Added the GetLength() method to ForumCache.
2017-09-28 23:16:34 +01:00
Azareal f5d5f755bb Added the Update method to *Forum and fixed a bug where forum updates would bypass the forumView cache.
Fixed a bug in MemoryForumStore's CacheSet where it requires new entries to exist, even though they don't need to.
Fixed a bug where the Reports could be deleted.
Fixed a bug in the JS where the inline forum editor stopped working.
Fixed a bug in Shadow where the Add Group header was pushed to the side by the previous element's margin.
Fixed a bug in the Forum Editor where the Active input's initial value was inverted.
2017-09-25 01:48:35 +01:00
Azareal b955f677a7 Fixed the permission system.
Added more debug logging.
Renamed the label in the Forum Manager and Editor from Hidden to Active.
Fixed a bug in compileTemplates() where it only loads visible forums from the forum store possibly causing trouble.
Fixed a bug in the /topics/ route where super admin status wasn't being taken into consideration.
Dropped down a hotfix for the /topics/ route.
2017-09-24 01:49:41 +01:00
Azareal 2ef7726080 More debug data and moved the template detailed debugs to the TemplateDebug as they shove the other data off the console.
Tweaked a few things in the forum permissions functions.
2017-09-23 22:28:50 +01:00
Azareal 96b157e5aa Fixed a few regressions and renamed a file. 2017-09-23 21:46:28 +01:00
Azareal 11c60b3cbe You can now search for whatever IP you want in the IP Searcher.
Removed the Uncategorised Forum.
Added the Backup Page for super admins. Not quite functional yet.
Forums are now sorted properly again.
Fixed a bug in DirtyGet() where invalid IDs would trigger a panic.
Fixed a bug where alternate themes wouldn't work without setting them as default first and restarting Gosora.
2017-09-23 20:57:13 +01:00