2sxc 13 has many hidden gems which you may have missed...
Gem UI #1: Notes and Warnings on Entities
Every entity now has the ability to store a note (or a warning) which should help you or other editors remember why something was configured. This should help in reducing problems far in the future, where people change something they didn't know was important.
📖 read more about notes in the blog.
Gem UI #2: UI Save Enhancements
The Edit UI had various dialogs where you had to move to top-left to exit the dialog and then to bottom-right again to save/close. It also made it difficult to discover keyboard shortcuts like "save without closing".
In addition, if you were not in the main dialog, you often needed 3-4 such clicks to close everything and save. This was especially inconvenient when you just wanted to update a long blog-text or something (which was in a sub-dialog). Now the main edit-dialog shows more options when saving, and sub-dialogs also have all the necessary options. These are now always in the bottom right.
Gem UI #3: Create UI/Field-Formulas Directly
Previously formulas had to be created manually in the field-properties before developing them in the edit-UI directly. But in general, all formulas will be developed in the edit-UI so this made it much harder to use. Now you can create new formulas directly in the edit-UI.
📖 read more about formulas in the docs.
Gem UI #4: Paste Image From Clipboard
You can now paste images from clipboard directly into WYSIWYG and also into Link/Image fields. The clipboard contents will be converted to a PNG, which will save you and your editors a lot of time.
- This feature only works if the image in the clipboard doesn't have transparent areas. This is a limitation in browsers today.
- This is a Patrons feature. It's part of the Basic package which would cost the site 2 USD/Month.
Gem Dev #1: Razor Error Improvements
There are many cases where Razor would loop through many items and one of them would then throw an error - for example because a value in the item was unexpected or null.
In these cases it was difficult to figure out where the problem appeared, since it could be item 1 or item 42, because all you would see is a big error and probably a null-error-message.
We've now created a feature where any sub-template using Html.Partial("_SomeName.cshtml") that errors will only error on that instance and not error the entire module. This massively improves how you can find issues. Check out the difference (before/after):
Compare classic Razor errors with new errors
Important: In rare cases activating this feature could show parts of the module which were hidden on errors. Any security critical features such as this must be enabled (so we could inform you if there is a security issue). This is free but requires registration.
Gem Dev #2: Improvements on Missing Data
When you create a new site and use a template exported from another Dnn there will typically be modules which don't have content yet. Normally importing these apps will make the content magically re-appear. But the message shown previously didn't mentione the AppId or anything, sometimes causing people to try to fix the wrong problem. We have now changed the functionality so more information is shown when an App or ContentBlock isn't available.
Gem Dev #3: Shared Apps Improvements
Share Apps are Apps which store their templates in the shared folder (/Portals/_default/2sxc/Apps in Dnn). This allows you to re-use templates, css and assets on various portals. We've improved:
- Editing source code in the built-in Visual Studio Code to also show these files
- We've added Razor properties like @App.SharedPath to better link files in these folders
- We've added tokens like [App:SharedPath] so that custom fields can use this as well to link resources
BTW: We've also completed support for Shared Apps in Oqtane. So this now also works in Oqtane.
Gem JS #1: New fetch() API to replace jQuery
In case you missed it: the in-page JS now has various helpers like fetch() to do backend requests using modern AJAX without jQuery.
Gem JS #2: REST API Enhancements like PublishState
When calling REST APIs to save data we've added some features like "isPublished" where REST calls can determine how data is to be saved.
📖 read about it in the JSON Format Specs.
Gem JS #3: JS Workflows
When executing CMS commands like edit you can now also specify workflows - which are sequences of JS code to run before or after certain actions. This let's you prevent page-refreshes (to do custom ajax loading) etc.
📖 read about this in the JS Workflows docs.
Love from the 2sxc Team
Enjoy it! get it from the latest GitHub repos.