Skip to content

1.9.0 - Sunset

Compare
Choose a tag to compare
@cburschka cburschka released this 26 May 22:31
· 460 commits to master since this release
v1.9.0

This release adds several major new features, along with a lot of improvements to the user interface.

Note: From this version forward, releases will move from an x.y to an x.y.z versioning scheme.

Features

  • #5, #247: Context menus are now attached to users and rooms. These are triggered by a right click by default, which can be switched to a left click or hover event, or disabled entirely. Context menus provide shortcuts for most of the user- or room-related chat commands.
  • #204: Rooms can be configured interactively by calling /configure without any arguments or with the --interactive option. This opens the room configuration form in a dialog overlay. /create --interactive brings up the same form during room creation.
  • #156: Users (by JID) can be invited to the current chatroom using the command /invite <jid>, which uses XMPP standards and is therefore compatible with other chat clients. Incoming invitations are displayed to the user with a link to the specified room.
  • #243: Cadence can now join password-protected rooms via a --password argument to /join. If the server denies room access due to a missing or wrong password, the client prompts for the password and immediately retries.
  • #244: Room owners can destroy a room (ie. instantly remove it and expel all its current occupants) via the /destroy [<room>] command. This command requires a confirmation before the room is destroyed.
  • #218: Sound settings can be tested with a "preview" button which immediately plays the selected sound.
  • #170: The settings sidebar is now split into three tabs.
  • #212: The /whois command prints basic user information (JID, role, affiliation).
  • #232: /admin now supports arbitrary service administration commands as defined by XEP-0133. Form values can be supplied as command-line arguments. The biggest change is that the MOTD must now be set with /admin set-motd rather than /admin motd, because that is the real name of the command.

Fixes

  • #213: All strings in dynamically generated markup are now either escaped or added (as attributes or text nodes) via jQuery. This ensures that strings can never create markup unless they are added to a format string with a raw: format specifier.
  • #216: HTML (<b>) is no longer added to web notifications. This is a vendor- specific feature only supported by some desktop environments.
  • #221: All ponymotes have been converted to bitmaps and re-converted to PN to fix some odd color inconsistencies.
  • #222: The dnd icon has been resized to 16x16 like other status icons.
  • #223: Message recipients now have the correct JID classes (and thus flairs).
  • #231: Handle arbitrary values. The server passes on the element in user presences without filtering, and therefore it can neither be relied on to have one of the standard values (away, dnd, xa, chat) nor be safe for inclusion in an HTML class attribute without escaping.

Minor enhancements

  • #200: The carhartl/jquery-cookie library is updated to js-cookie/js-cookie.
  • #211: Rooms are now rendered as full links (with context menus as of #247) everywhere, not just in the /list output.
  • #214: An error in the :ajfrown: emote has been fixed by @Nebedia.
  • #215: Most commands now support a named argument syntax, eg. /msg --nick "<nick>" --msg "<msg>".
  • #217: The "Make URLs clickable" setting now applies retroactively.
  • #219, #220: HTML validation errors fixed in static markup.
  • #224: Add "missing arguments" error conditions to commands.
  • #225: Hard-coded error string in /who moved to strings.js.
  • #226: Block /affiliate command outside room context.
  • #227: Print error messages if /configure fails.
  • #228, #229: Rewrote /affiliate and made /ban and /unban shortcuts for /affiliate outcast / /affiliate none.
  • #230: The /msg and /dmsg commands use chat.parseArgs().
  • #233: strings.info is now sorted alphabetically.
  • #236: Users without a nick (ie. non-occupants) no longer have a fake nick attribute only used for display. Instead, their displayed name is directly generated from their bare JID.
  • #238: The Cadence version of jquery-replacetext is now a standalone jquery plugin, and is included as a submodule.
  • #239: xbbcode is now updated to 1.0.0, the first public release. This fixes an error with improperly nested tags.
  • #240: A nick collision while joining a room now prompts for a different nickname rather than automatically appending a number.
  • #241: Users get the room name instead of "You have been banned from {room}!" when they are banned.
  • #242: /whois prints "---" for the JID in anonymous rooms.
  • #245: Cleaned up string formatting. Formats are now specified with {format:var} instead of {format.var}, and the variable key is var instead of format.var. Names and formats can contain any word characters, not just [a-z]. Variables are only formatted when they are actually used by the template.
  • #246: /configure --title "<...>" now targets the current room instead of a room named <...>.
  • #248: Context menu items are only enabled when the current state allows them.
  • #249: Form dialogs can now be made from any form, not just jabber:data-form stanzas.
  • #251: Context menus and dialog overlays now visually match the current theme.
  • #253: :droneriots: and :yay: are removed from the main Cadence branch.
  • #255 et al: Several style fixes for Firefox and Chromium.