Site updates

In this thread I will list all changes to the site, in chronological order (latest changes on top).

Please feel free to post any bug report, critique or other comment relating to an update!


  • Implemented code to allow to upload and store pictures
  • Implemented the display of Avatars on all lists (series, stories and comments) and the stories themselves.
  • Added Profile Pages
  • Added bubbles for new PMs and other forum notifications to the main menu.
  • Bugfixes


  • Implemented story challenge final standing calculation and display.
  • Several user experience improvements:
    • For the rating of stories:
      • Rating panel is now collapsed on touch screen devices to avoid accidental ratings when just trying to scroll
      • Rating panel redesigned slightly
      • Notification “toast” pop-up to remind the user to rate all 5 categories.
      • Automatic reminder “toast” pop-up to rate a story after it has been scrolled all the way down and the reader has spent at least 2 minutes with the story.
    • For bookmarks:
      • A bookmark can now be cleared by clicking the paragraph where it’s currently set to.
      • Both setting and clearing a bookmark takes a slightly longer click or touch (150ms), to avoid accidental setting of bookmarks.
  • Bugfixes
  • Bootstrap UI framework updated to 4.4.1


  • Added word count to story display
  • Changed the series navigation bar in the story display
  • “Your Rated Stories” calculation improved
  • Fixed layout of the Story Challenge on mobile phones
  • Series and Author pages are now receiving the nice preview when linked to from Social Media sites like Disord or Facebook et. al.


  • Bugfixes and Improvements on the Story Challenge page:
    • Paging works now
    • Number of entries selection added
    • Comment count shown
    • Caching added
  • Number of entries selection added to the global comment list


  • The rating system will now slightly favor stories with more votes.
  • The number of stories or series listed per page can now be selected at the bottom left or each list.
  • Added a warning message if a tag or a category filter is active (turned out people tend to forget that and wonder why they’re missing content)
  • Introduced Story Challenges
  • Improved User Profile Edit dialog
  • Bugfixes


  • Rearranged the header menu to show the Login / Register function more prominently.
  • Changed “Community” to “Forum”
  • Added the Safe Mode feature
  • Added notification for active Safe Mode


  • Added option for authors to lock the tags to their story (can no longer be changed by other users)
  • Added option for authors to disallow comments for a story
  • Added option to show deleted stories in the author’s “Your stories” list (before they were always shown)


  • Renamed “Tag filter” into “Blocked tags” since it kept confusing people.


  • New statistic view of all ratings given for each category available to the authors.
  • The ratings data is now updated every 10 minutes (before: once an hour)
  • The monthly/yearly/overall rank is now updated every 4th hour (before: once a day).


  • Captcha is now skipped for logged on users. If you hate captcha, simply create an account!
  • Changed the thresholds for the various icons to be shown at the stories. They are now dynamically calculated, so that a story needs to be in the top 20% (10% for silver, 5% for gold) ratings in each category to get the respective icon.

Recent changes I didn’t list here:

  • Added captcha for adding comments to get rid of spam
  • Changed the text on the “tag filter” select box on the main page to make it clearer that this filters tags OUT
  • Restored check for minimum length of stories as soon as they’re published by the author. There’s no check for saving a draft anymore.
  • Added random page button on many places
  • A lot of optimizations for performance and data transfer sizes
  • When a Community Story gets an update, it will now be pushed back up to the top of the story list, to make sure that the change is seen.
  • Improved mailing to authors and editors
  • Bugfixes


  • Added new offer to place Sponsored Stories to the site.
  • Added new menu (Stories->Sponsored Stories) to list all sponsored stories ever placed on GSS.
  • Various bugfixes
  • Added “Disable Pulsing” (in the theme menu, to improve performance on systems which struggle with the animation)


  • Added “Share” button to stories (usage example)
  • Further improved the layout of story lists on tablets
  • Bookmark icons on the story and main page are now in green, to improve visibility on certain themes.
  • Crash fixes on submitting stories and listing search results


  • The “Top Rated Stories” list can now show previous time periods
  • Using this mechanism, you can now also get a list of the highest rated stories before 2018
  • Added bookmarking of stories (details here)
  • Added “Your Rated Stories” for logged on users (sorted by rating).
  • The layout on tablets has been improved to make better use the available space
  • Reminder for unpublished stories sent only twice per week now.
  • Generally more mails sent when stories are edited or approved.
  • <center> tag is now allowed in stories.
  • Source code refactored
  • Bugfixes


  • Author list now shows the number of published stories for each author. The list can also be sorted by this number.
  • Authors with no published story are no longer listed
  • Improved the display of series with multiple authors
  • Logged in authors can now list and see their own stories even if they were marked as ‘deleted’
  • Countless fixes and layout changes


  • Old stories that were taken over from the NCMC are now displayed much better. They can also now be edited properly.
  • Fixed some bugs (with tag handling, error handling and other stuff).


  • Added option to edit own comments (Anon users can edit comments they’ve just added)
  • Redesigned comment display slightly


  • Added “Community Series” feature
  • Reworked the whole system how stories are submitted and managed internally. Errors when submitting are now better processed and shown to the user.
  • Improved the display of story revisions. Added a hotkey to switch highlighting of changes (Ctrl-Return)
  • The curator of Community Stories can now merge all revisions back to the base version
  • Improved the Category selector and added verbal descriptions to them (thanks to RobinHood70 for his help!)
  • Improved Search dialog according user input.


  • Added option for authors to rename their series and change their summaries
  • Revised Community Stories
  • Smaller fixes everywhere


  • Completely reworked mechanics for submitting, approving and updating stories
  • Stories are now saved into a preview, can be edited as often as you want, before explicitly releasing them to be published
  • Added experimental Community Stories feature


  • Added new tag filter. Allows to filter up to three tags, all stories which is tagged with one of these will be filtered out from the main site and the story list.
  • Improved display on mobile devices and added button to access the forum.
  • Various smaller fixes here and there
  • Switched to a larger database server to cope with the increased load. Should fix the recent numerous outages
  • The forum has now large icons to return to the main site and to the comments (desktop only)
  • Fixed images embedded in stories (already live for a couple of days)


  • “Dockerized” the whole site.
  • ElasticSearch is now running in a separate process
  • Moved the site to another bigger server


  • Removed the delay of 6 days before a story got any rating icons
  • Instead, a story needs now at least 10 ratings in each of the categories before any rating icon will be shown
  • Slightly raised the required average for ratings for their icons to be shown at all and also for the silver and golden glow. Gold is really reserved for stories with outstanding ratings.
  • Improved the (still broken) layout on the Internet Explorer slightly. Please switch to a modern browser if you can!


  • Added a golden glow for outstanding and a silver glow for exceptional high ratings
  • Now all 5 rating icons are shown, if the the story’s ratings are good enough


  • Added a new icon making it clear that a story needs more ratings before any concrete rating icons can appear.
  • Rating icons are now also displayed for series as well.
  • Improved mail text sent to authors after they have supplied a new story


  • Added a new “Category” filter on the main page and several Story lists. You can select multiple categories you want to see (or un-select those, you don’t want to see). The selection will be remembered as a cookie.
  • I’ve redone the “Top Rated Stories” selection once again. It’s persistent now, changes only every other week and is better distributed over all rating categories. It has to start from scratch on January 5th because of that.
  • The list of random stories from the archive is now persistent (i.e. the contents cannot change when the site is restarted). This way it really only changes once a week and it won’t repeat stories already listed before (starting from today).

For site admins only:

  • Added a markdown editor to the news editor
  • Added a administration comment to each story for admins to document their decisions
  • Admins get to see deleted messages as well, especially in the search results, making it easier to answer requests for missing stories in case they’ve been deleted.

Internal stuff

  • Updated frameworks (Grails to 3.3.8, GORM to 6.1, ElasticSearch Plugin to 2.5.1, ElasticSearch to 5.5…)
  • Updated database to PSQL 10
  • Fixed Database-Migration processing


  • Added new “Stories” item in main menu
  • Added new “Stories needing attention” menu item - showing all stories which lack a category or sufficient tags
  • Added badges to stories which lack a category or tags
  • Redesigned the story display to make it more obvious how to add a category or tags
  • Added new “Recommended Sites” menu item


  • Added a toggle called “extended editor” (when adding a comment or a story) to switch between the new fancy Markdown editor and a plain text area. This is for people with compatibility or other issues with the advanced editor.


  • Fixed problem for the Internet Explorer and old Firefox versions where it was impossible to click any link in the table of stories.


  • Improved search feature:
    • Added category selection
    • Full text search no longer limited to 60 hits
    • Improved performance a lot
    • Added help button and a complete documentation for the advanced search features
  • A click on a story’s category now leads to the proper category-search
  • Various smaller fixes and improvements


  • Fixed Markdown for comments
  • Improved account handling (reset password etc.)
  • Countless other little improvements and tweaks here and there


  • Added “Stories from the Archives” (will activate on Sep-19th)
  • Marking active theme in the selection menu
  • Improved timezone management (using cookies to improve loading time by reducing redirects)
  • Added message to encourage rating stories which lacks ratings
  • Various fixes


  • Fixed the main menu on very small phones (you can scroll through it now properly)
  • Improved the menu header display further on small mobile phones
  • Updated to JQuery 3.3.1
  • Fixed and reenabled the automatic time zone detection


  • Disabled “Top Story” feature for now. I completely reworked it, and it will come back on Saturday, October 6th.
  • Fixed text search
  • Fixed menu header display which was broken on small mobile phones
  • Fixed time zone detection
  • Fixed printing (landscape printing is possible again)


  • Changed the marking for new comments to look the same as for new stories on the main page (using a green star). This way problems with the readability on certain themes are avoided.
  • Fixed the “edit story” dialog not to use the WYSIWYG text storage (this would lead to very undesirable results, like losing the stories contents)
  • Used a better solution to avoid CSS theme files not being properly loaded when exchanging them (“CSS cache busting”)


  • Update to Bootstrap 4 and complete overhaul of about every page to work properly with Bootstrap 4
  • News are now using Markdown as well
  • Reworked NoScript warning, age-verification and cookie notification
  • Redesigned NavBar
  • Added rating icons to story list for stories with high ratings
  • Replaced glyphicons with Font Awesome throughout the whole site
  • Changed date/time display throughout the site to use the locale setting and time zone of the user
  • Complete overhaul of the Story display
  • Rating statistics for authors completely reworked and ranks added
  • Comments can now be deleted by their posters (if logged in) or right after they’ve been written (for everyone)
  • Markdown WYSIWGY editor added for comments
  • List of comments reworked and optimized
  • Search page reworked and fixed
  • Story submission and edit page completely reworked, Markdown WYSIWYG editor added
  • Tag Management page reworked
  • User Management page reworked
  • Added “Top Stories of the Month” feature
  • Updated themes


  • Added “theme” URL parameter to preselect the theme (in case cookies are not aceeptable)


  • Added theme support and a number of themes (select one in the menu on the right of the menu-bar).
  • Various smaller layout and dialog fixes


  • Added badges for users in menu, on stories and on comments
  • When approved stories are edited, the last approved version will remain visible until the update is approved
  • Redesigned the Edit Profile dialog and added new functions:
    1. Send email to author when new comments are added to his story
    2. Send email when new stories are published (Patreon only)
    3. Hide Patreon button (Patreon only)
  • Authors get rating statistics displayed on their stories (this was actually implemented long ago, but due to a bug only worked for admins)
  • List of all comments reworked to look similar as the design used for the comment list on single stories. The name of the stories’ authors is now displayed along their title.
  • Green marking of new comments now also used when listed for a story
  • Comments are now supporting Markdown and are save against malicious HTML
  • Fixed “Use forum in anonymous mode” button on the “Edit Profile” page (didn’t do anything previously)
  • Fixed browser caching issues on story display


  • Added Patreon button and goal progress bar
  • Password reset was case sensitive, which didn’t make sense. Fixed.
  • Fixed several admin functions


  • Fixed the generation of horizontal rulers
  • “Automatically generate clickable” on the story submission page now defaults to “off”, since it doesn’t work well with Markdown links.
  • Fine tuned the formatting of story text
  • Fixed and optimized pager bar for mobile devices


  • Added support for Markdown
  • Redesigned the story submission dialog
  • Added code to prevent injection of invisible HTML malware (sanitizer)


  • New stories since the last visit are now marked on the main page as well (with a green star next to the title)


  • Comments added since the last visit are now marked in green
  • New option for authors to list comments for their own stories
  • Fixed change password dialog
  • Fixed editing of stories for anonymous authors
  • Added a warning when submitting a story without being logged in
  • Fixed management and deletion of accounts (admin dialog)


  • Redesigned rating widget with icons designed by Foxtrotter
  • Created a separate design for the rating widget for small mobile devices
  • Added a ‘clear’ button to the rating widget


  • Fixed the clickable tags which wouldn’t show the proper search results in some cases
  • Changed menu color


  • The search returned deleted and unapproved stories for tag searches. This has been fixed.
  • For admins, the search for both text and tags will now return deleted and unapproved stories as well.
  • Tuned the number of columns shown on the tag select dialog for the desktop and various devices.


  • Added option “Match All Tags” and “Match Any Tag” to search dialog
  • Fixed sorting for search dialog


  • Fixed problems with rating changes not being saved in some cases
  • Changed page titles to new schema
  • Ensured that tags are always lowercase


  • Added ratings to stories and rating statistics


  • Improved Desktop and mobile banner
  • Redesigned newsflash
  • Fixed problem that made it impossible to use the return key in the story text field


  • Fixed the text search display
  • Fixed an incompatibility with the Edge browser regarding the title banner
  • Fixed a problem in the tag widget that was preventing the usage of a mouse click, the tab or enter key to select a tag.


  • Fixed head banner for mobile devices
  • Made tag dialog width sensitive, the dialog is now properly rendered correctly on mobile phones.
  • Fixed tag widget on story display and edit (caused by hibernate bug)
  • Fixed changing of tags on existing story

2017-12-26 (Christmas 2017 Update)

  • Replaced the main banner and logo, the site’s official name is now consistently “Gay Spiral Stories”
  • Changed rules for acceptable stories
  • Added Category to all series and stories. Categories are automatically derived from existing tags for existing stories.
  • Created new tag dialog and tag selection widget
  • Reworked the story submission and edit dialog. Category and at least 3 tags are now mandatory.
  • Fixed the sending of emails when stories are approved
  • In the story list, the link to the series title will always bring up the list of stories in the series (and no longer directly refer to the latest story)
  • Allowed changing of Category on stories where it hasn’t been set yet
  • Joined and completely reworked tag and text search
  • Tags now have aliases (similar tags, like “pup” and “dog”) which are used optionally when searching
  • Completely reorganized existing tags, corrected, merged or deleted misspelled or superfluous tags

I have an issue with the tag search, the search is currently in OR mode, rather than AND, and there’s no way to fix that. I really think it should be AND by default, since when searching two very expansive tags, like say Muscle Growth and Hairy, the contents of the search become unwieldy, basically useless for finding that specific cross-section.


Actually, because of the new alias system, a “and” search is much more difficult to do. I’ve actually spent some days on that already, but due to certain bugs and inefficiencies with the database layer (hibernate), it just didn’t want to work.

I completely understand where you’re coming from and I do agree that this would be an important addition to the search. And since you’ve posted, I know that all the time I’ve spent on this is not going to waste since there’s at least one guy using it :slight_smile:

I want to try another approach and maybe this will work. No promises though.

I assumed you were using ElasticSearch. In that case, it would be very easy. Also, you can always bypass Hibernate and hand-create the SQL. I suspect, from what you are saying, that Hibernate is creating a IN() clause. I suspect you are using the wrong kind of operator. Not sure if you are using the Hibernate language directly or going through JPA, but there is a way to AND clauses together in either case.

The text search is done using Elastic, but not the tag search.

The problem with hibernate (in grails) is, that it doesn’t properly accept a list (of ids) as a named parameter. I get an ClassCastExeption because it tries to cast the list into a single Long if you try to use a statement like “id in (?)” in HQL.

If you have any insight on that, I’d be happy if you contact me :slight_smile:

Today’s update is just a single line, but it’s actually quite a big update which I wanted to do for a long time:

  • Added ratings to stories and rating statistics

I’ve been planning to do that for quite some time and the fact that I’ve just started to write a new story line had absolutely nothing to with adding that feature. Nothing at all. :wink:

But you don’t want to generate an IN() clause. That is an OR. I’m not familiar with Grails, but I think you want to add the search terms in a loop, ANDing each one.

If you activate the “find similar tags”, you’ll always have a group of tags that can match. So if you combine “find similar” and “Match all tags” you’d get a statement like

Find all stories which have a tag that is in the group “x, y, z” and also have a tag that is in the group “a, b, c”

That’s like a double join in SQL. I’ve written that statement, and it’s working. But it needs the “in” clause. I could create a list of or statements for that as well, but that’s quite unyieldy.

I’ll work on that, don’t worry. I’ll probably just use plain SQL to solve that. But please give me some time… :slight_smile:

By the way, the contents of IN() is not just one named parameter. That is why HQL is getting confused, probably.

That’s why I use a list as the parameter. Every SQL implementation using parameterized statements supports that…

According to a number of posts, HQL does not support that. Here is a guy who is having the exact issue you are having:!topic/railo/9DuhQUxL1Hc. I suggest building a comma-separated list of values and splicing it in manually into the SQL. Of course, you are going to have to protect against SQL injection attacks blah blah… but it should work.

Or you can bypass HQL and use native SQL directly. That would probably perform better for your use case in any case, since you can use a WITH clause, which HQL does not support. I am assuming that you are doing a GROUP BY. I mean, the way I would handle the problem is this:

Assuming you have three tables, Stories (aliased as S), Tags (aliased as T), and a join table aliased as TS, you would do:

with lst as (
select *
from ts, t
where ts.tag_id = t.tag_id
and t.tag_name in (‘A’, ‘B’, ‘C’)
select lst story_id, count()
from lst
group by lst.story_id
having count(
) > 1;

This assumes you want to get all the stories that have at least two of the specified tags. You can modify the query to order by the number of tag matches, etc.

Once you have the list of story_id, iterate over it to get the actually story data.

I don’t think you can do this efficiently using HQL. But the SQL query above should work, even with the lame MySQL optimizer.


Thanks for all your input! It’s very much appreciated.

I tried to avoid directly using SQL in the beginning, because I want to embrace the technology at my hands before circumvent it, but in this case I’ve just wasted too much time on it, so I’ll definitely fall back to SQL. I think I’m quite competent with plain SQL :slight_smile:

I did some research on the issue, but I didn’t find that thread. It’s from 2012, so you’d expect that it’s fixed by now. I actually updated to Hibernate 5, hoping that this would resolve the problem, but it didn’t. My suspicion is, that the layer between GORM and Hibernate might also be a factor in this problem - but I really don’t care anymore. SQL is the way to go. Just give me some time, I just wanted to get the rating system out, because that’s quite important for me. Then maybe a short break before I start to code again…

Thanks again and happy new year!

Could we have the option to edit our comments too? Dunno if this is the right place to ask tho, so sorry

The ‚planned features‘ thread would be perfect for requests.

I see what I can do. But there are still many things on my list… :wink:

1 Like

Hi! Currently under the search feature, for a keyword search, if you try to change it to organize by date posted, (so that the most recent story with that keyword is featured first) it turns up no result. It would be great if that could be fixed so we can see the newest stories with certain keywords in them! thanks.

Thanks for the info. I’ll put it on the list of things to fix.

1 Like

Made a small update:


  • Added option “Match All Tags” and “Match Any Tag” to search dialog
  • Fixed sorting for search dialog

This hopefully fixes all issues some of you had with the search feature … :slight_smile:

1 Like

A minor bugfix update:


  • The search returned deleted and unapproved stories for tag searches. This has been fixed.
  • For admins, the search for both text and tags will now return deleted and unapproved stories as well.
  • Tuned the number of columns shown on the tag select dialog for the desktop and various devices.

And another bugfix:


  • Fixed the clickable tags which wouldn’t show the proper search results in some cases
  • Changed menu color

I noticed the new menu immediately. Very nice, real swanky!

1 Like