Skip to content

Releases: SenseNet/sn-client

March 2021

22 Mar 14:37
Compare
Choose a tag to compare

In the last month, we worked on two major tasks: settings page with a lot of new features and performance optimization of the admin ui and our packages. The long-awaited webhooks are finally available in sensenet. It opens up a lot of new opportunities for our customers.

[email protected]

We added a new menu item called Settings to the sidebar navigation. βš™οΈ Some previously individual menu items had been moved here like Localization, Setup (renamed to Configuration) and Personal settings (renamed to admin-ui customization). #1159

admin-ui customization - Settings

The Settings page also contains some new sub-pages: Stats πŸ“Š, Api and security πŸ”‘, Webhooks πŸ””.
Stats page has a chart which shows the amount of storage space usage and the current utilization of your plan. It has 2 tables containing some technical details of your repository with the required and installed sensenet components. #1162

Stats - Settings

API and Security is very useful if you want to build a new application over sensenet. You can manage your access tokens here which are needed for implementing authentication for your app. A similar page also available on profile.sensenet.com. #1168

API and Security - Settings

The third new feature is Webhooks, from now on you can subscribe to a lot of events in your repository and get notified by sending a request #1172. You can read more about webhooks on the documentation site

Webhooks - Settings

The admin-ui has a lot of features which means a lot of code. It can slow down the loading of our sites and destroy the user experience. To prevent this we tried to minimize the size our JavaScript bundle loaded on the initial page load. We also removed some unused parts from our packages and made some code to load only on-demand. It produced excellent results:

We don't stop here, in the future we will make it even better, but this is a great start. πŸš€ #1218, #1211, #1213, #1192

We also made some minor improvements and fixes. #1191, #1188, #1217, #1236

@sensenet/[email protected]

setupFieldSettingForControl function had a special object as type parameter, it has changed to the name of content type (as a string) to make it easier to use with user created custom types.

@sensenet/[email protected]

We replaced Moment.js with date-fns. You can pass the current locale as a parameter to the DatePicker control.
We also created a new control to handle digital information units: FileSize.

@sensenet/[email protected]

Backend related fields has removed from the types.

@sensenet/[email protected]

Old sn6 icons are not used anymore, so they are removed from the package.

@sensenet/[email protected]

Parameter of type and typeIs functions has changed to string (name of the content type).

2021-02

22 Feb 16:38
Compare
Choose a tag to compare

Valentine's Day 2021 πŸ’–πŸ’˜

Love Is In The Air 🎡

Everywhere I look around πŸ’

Love Is In The Air ☁️

Every sight and every sound.. 🎢

Another Valentine's day passed by, and we are here with the news.
Check out what we done during these loving days.

[email protected]

We completely renewed the search page. You have now advanced options for searching and filtering the results to make this feature easy to use. πŸ’¬ #1180

New options: ⚑

  • filter by type (document, image, event, user, article, workspace, folder, task, memo, group)
  • filter in a specific container
  • filter for the contents what belongs to me (shared with me, assigned to me, etc.)
  • filter by creation or modification date

Note: The advanced search input does not support query syntax, for working with queries use the command palette instead! πŸŒ€

The save query feature did not change, you can still store your search filters. πŸ’Ύ

Advanced search

@@sensenet/[email protected]

Default content types has been extended with some types πŸ‘½ #1163

@@sensenet/[email protected]

We had prepare admin-ui to cases when the identity server is down 😎 #1187

@@sensenet/[email protected]

Due to the advanced search feature we also add some changes here 😡 1180

See you in next month! πŸ™‹πŸ‘‹

2021-01

25 Jan 14:29
Compare
Choose a tag to compare

First update of 2021

Right at the beginning of the year we will bring you big changes on the admin-ui. πŸš€ Two rethought and refactored major component and the last big missing pieces of user management features are added this time. Let's see what we did!

[email protected]

Users can change now their passwords on the admin ui. #1113

@@sensenet/[email protected]

The document viewer has undergone major changes again #1101: we've reduced the number of requests sent by the viewer, made some styling updates and fixed zooming in the first place. But the biggest change is that the old editing functions (adding redaction, highlights and annotations) are brought back to the viewer. πŸŽ‰ There are still some minor known issues, but SNaaS is still in beta, and we wanted to give this features to you as soon as possible, so give it a try and let us know what you think.

@@sensenet/[email protected]

[BUG] The ContentList component cannot be used with the File type is fixed with overridable type of items in ContentList component. 1139

@@sensenet/[email protected]

The content picker component is fully redesigned and refactored. You find contents by using the content tree or by searching with an autocomplete search and you are able now to review and manage the selected items on a separate view. This new picker can now be used when you edit a reference field, copy or move content, or restore content from the trash.

2020-12

14 Dec 11:05
Compare
Choose a tag to compare

Best time of the year πŸŽ„ 🎁

Another year went by, we worked a lot to make our code more stable and improve the user experience of the admin ui. We left one of the biggest rework for Christmas: the completely refactored DocViewer. πŸ“„ We don't stop there, we will work on it on the next month to make it more customizable and we also add new features to it. πŸ› οΈ

Here are the changes what we made:

[email protected]

  • Our logo has borrowed Santa's hat again πŸŽ…

  • More accurate error messages for the user status switcher on the Users & Groups page.

@@sensenet/[email protected]

  • The whole library is revamped. We tried to make it more usable, stable and easier to develop for it.

2020-11

23 Nov 13:35
Compare
Choose a tag to compare

Bye-bye Hacktoberfest πŸ‘‹

Hacktoberfest 2020 is over, thanks for all the contributors. Limited edition super socks will arrive soon ✈️. We really enjoyed the last few weeks, the joint work went smoothly. Other than that a refactoring period was maintained by us. Two main package was touched, but in this release only one is published: @sensenet/controls-react. @sensenet/document-viewer-react will change soon with even more stable operation. ⌚
We also fixed bugs as usual, bugfixing never ends. πŸ›

Here are the changes what we made:

[email protected]

  • We have new cypress end-to-end tests. Thank you again for the contributors! ✨

  • There were some components which did not follow the font-size-change of google chrome. Now this is fixed, you can use sensenet with large or extra large font-sizes as well. πŸ‘“ #1075

  • Some error messages were not handled correctly on group membership dialog, now it is fixed. πŸ’¬ #1080

  • A notification problem was also noticed during query writing which has been resolved. ⚠️ #1081

  • You can use now reference fields in your custom menuitems. ⏬ #1021

How can you try?

  1. Add a new AllowedChildTypes item to Sample Workspace (SmartFolder)
  2. Create a New SmartFolder under Sample Workspace with the following options: (query: +TypeIs:'Task' +Status:'Active')

ActiveTask

  1. Go to /personal-settings and copy this to the text area:
{
   "theme": "dark",
   "default": {
      "drawer": {
         "items": [
            {
               "itemType": "CustomContent",
               "settings": {
                  "icon": "AddAlert",
                  "title": "ActiveTask",
                  "appPath": "activeTask",
                  "root": "/Root/Content/SampleWorkspace/ActiveTask",
                  "columns": [
                     "Name",
                     "ModifiedBy/Email",
                     "ModifiedBy/Manager/Manager/Email",
                     "ModifiedBy/Manager/Name",
                     "ModifiedBy/Manager"
                  ],
                  "description": "List of accounts that should be notified"
               }
            }
         ]
      }
   }
}

In this example I modified the related Task with businesscat, I set the Manager of businessscat to devdog (whose manager is editormanatee)

The result:

ActiveTaskResult

@sensenet/[email protected]

  • New function is added to SchemaStore #2021
/**
   * Returns the Field Type for the provided content field name
   * @param {string} fieldName The name of field you search for
   */
  public getFieldTypeByName(fieldName: string): string | undefined {
    const schemasCopy = [...this.schemas.getValue()]
    return schemasCopy.reduce((_, schema: Schema) => {
      const fieldType = schema.FieldSettings.find((fieldSetting: FieldSetting) => fieldSetting.Name === fieldName)?.Type
      if (fieldType) {
        schemasCopy.length = 0
      }
      return fieldType
    }, undefined)
  }

@sensenet/[email protected]

  • New optional prop is added to virtualized-table:
/**
* Contains custom reference cell template components
*/
referenceCellRenderer?: (tableCellProps: TableCellProps) => React.ReactNode

@sensenet/[email protected]

isCurrencyFieldSetting typeGuard is moved from sn-controls-react to default-content-types

@sensenet/[email protected]

Last, but not least this package has been reshaped, now it is much better than it was. β˜€οΈπŸ‘ŒπŸŒŸ

You can find the release here

2020-10

26 Oct 15:00
Compare
Choose a tag to compare

First release of the SNaaS era 😱😱

As you probably already know we've started SNaaS (sensenet as a service) as beta in October so this will be our first release that will affect not only our test environments but also a several public repositories owned by you. Exciting, isn't it? :) We put together a few fixes, some refactored components and we got some e2e tests made by awesome hacktoberfest contributors. Here are the changes what we made:

[email protected]

  • To make it easier for you to ask us for help right away or give feedback directly on the admin-ui, we’ve built a new help menu #999

Help section

  • Users and groups cannot be moved to the trash so we updated the delete confirmation window with the info and made the move to the trash option hidden in this cases #1017

  • Permission editor title is fixed to handle longer content names #990

  • We rethinked the notification feature a bit and made some style and usability changes #975

Notification

  • We've implemented a deep type check to replace the simple type name check #1026

  • Many refreshing issues are fixed with a major tree rework #1003

  • We've cleaned up the project to get a rid of warnings and errors that showed up during unit testing #841

  • Edit and new forms' first field gets the focus (check the list of affected fields in the related pr) [#977]
    (#977)

  • Group membership buttons were a bit messed up on smaller screens, so we changed them to only one button. List of groups could be reached with clicking the button as before #982

Role button

  • Unexpected theme changes on refreshing the browser are fixed #1004

  • Command palette text editor's cache is fixed #1007

  • Checkbox group control saving issues are fixed #972

  • Random break issues in rich text editor are now fixed #985

  • Default value in DateTime fieldcontrols is now handled correctly #991

[email protected]

  • Refreshing issues are fixed #1003

@sensenet/[email protected]

  • Deep type check is added to the core layer to replace the simple type name checks #1026

@sensenet/[email protected]

  • Notification, error handling and logging updates #841
  • BREAK in notification service

@sensenet/[email protected]

  • Deep type check is added to some of the fieldcontrols to replace the simple type name checks #1026
  • BREAK in ReferenceGrid, Currency controls and templated values, plus optional autoFocus property

@sensenet/[email protected]

  • Deep type check #1026
  • BREAK isUser is removed from type-guards

@sensenet/[email protected]

  • Notification, error handling and logging updates #841

@sensenet/[email protected]

  • Refreshing issues are fixed #1003
  • BREAK at batch operations

@sensenet/[email protected]

  • Notification, error handling and logging updates #841

At last but not least thank you for our Hacktoberfest contributors @daniel-shuy, @pietervanh, @RanadeepPolavarapu, @mitcom, @shinnlok, @dlemstra, @NileshPatel17 for the awesome new e2e tests for the admin-ui. If you're interested in helping us and want to own a special Hacktoberfest swag 🧦 check our dedicated site.

You can find the release here

September 2020

29 Sep 13:14
Compare
Choose a tag to compare

Bug hunting season!πŸ’¦πŸœπŸ›

Hacktoberfest 2020 and the SNaaS beta period are upon us and this year we connect these two things making October fun, challenging and useful for both of us. We always put a lot of effort on avoiding bugs and testing a lot, but it's still good to stop for a while and review each and every feature, to make sure we're ready to start SNaaS beta in October. So we intended September to test and fix as many bugs as we can besides to finish some of the missing core features like setting permissions. Let's see what we did so far.

[email protected]

  • Our biggest feature in this release is the permission editor for the admin-ui. EnikΕ‘ has written a detailed post about it.

  • User and Group types' browse view is fixed by hiding the unnecessary role related fields. #785

  • Possibility of inserting images and links are added to the rich text editor #842

  • Setup page has been cleaned up by hiding system settings #802

  • Grid column header are fixed to display the fields' DisplayNames instead of their Names #846

  • Batch actions (copy, delete, move) are fixed #814

  • DefaultValue and default selection is now handled properly in Choice field related controls #815

  • Reference fields got a basic display as grid columns, so now they can be used in custom menu's grid as well #808

  • Multiple upload requests are now prevented on CTDs #885

  • Upload chunksize is set to 1MB preventing upload issues #910

  • Grid issues in Safari browser are fixed #897

  • Folder name issues in explorer are fixed. #781

  • Fixed: Error throwing on typing % in search field #710

  • Deletion of items from the Allowed Child Types input has been fixed. #823

@sensenet/[email protected] ❗❗πŸ”₯

  • AuthenticationProvider's component parameters changed from ReactNode to functions which returns a ReactNode. This way we can push down values from the context to these components. Read more: link

@sensenet/[email protected]

  • Added interfaces and getAcl method for permissing handling. getAcl documentation: link

  • SchemaStore has a new public method: subscribeToSchemas. It requeries a callback function as the only parameter and runs it when the schema's value changes.

@sensenet/[email protected]

  • New isInSubTree method to check if path given as the first parameter is inside the subtree defined by the second parameter.

@sensenet/[email protected]

  • Document viewer display proper error messages when preview generation is failed #899
  • On the document preview screen the active page number was always 1. We fixed it to be in sync with the visible page #873

@sensenet/[email protected]

  • Batch delete event has added.

August 2020 / 2

26 Aug 13:13
Compare
Choose a tag to compare

Bye bye summer, hello autumn!πŸƒπŸ‚

We have to say goodbye to summer, but it is also a new beginning of something: autumn. The "ember months" hold new challenges, surprises and of course new tasks for us. We deal them with passion in the future as we have done so far. We are really excited about Hacktoberfest, so we already started to work on tasks for contributing. In the upcoming months we will focus on bug fixin' instead of implementing new features.
Here are the changes what we've done:

[email protected]

  • We had to downgrade our date-io dependency version to 1.3.13 cause with newer versions we had some issues.😒
    #788

  • We did some changes on avatar as well, now users can upload images and set it as their profile pictures using the upload dialog. The process is easier than before. Refreshing is not working properly for now, but keep calm: we are working on it. πŸ˜‰
    #740

AvatarUpload

  • The biggest new feature of the last 2-3 weeks is binary based content creation πŸŽ‰πŸŽ†
    Adding a new CTD, Settings or Localization file was a nightmare before, but you can easily do it now. You will have a custom editor (a monaco texteditor) with a default template that you can use as a helper sheet to create your new content type. What you have to do now is just click on the + (Add) button on the 'Content Types' page, select Content type from the dropdown list and fill the .xml file with your expectation. And voila... πŸŽΊβ›²πŸŽ―
    You can also create new Localization and Settings file like this.
    #784

CreateCTD

  • The admin surface has a brand new dashboard.πŸš… You can check it right after login, cause this is the landing page as well. You can now see the actual usage and limitations of your repository and following the links on the bottom you can learn more about sensenet. 🌎🌌 In the header we also made the repository url visible to know exactly which repository are you in.

Dashboard
Dashboard2

  • Last but not least we have implemented the restore function in trash. If you accidentally delete something important, you can restore it with 2 mouse click.
    In addition you can change the location of the restored file if you would like to move it to different folder from its original place. πŸ’Ύβͺ
    #792

Restore

@sensenet/[email protected]

  • We performed a large refactoring on the view controls and their display interfaces, which also affected our exapmle apps and our sn-controls-react package.
    #764

@sensenet/[email protected]

  • There was a bug related to the preview generation. Don't worry! All the bugs flew away πŸ›πŸž
    #791

@sensenet/[email protected]

  • RegeneratePreviews action has now a return value which contains PageCount and PreviewCount numbers.
    #791

You can find the release here

August 2020

06 Aug 13:49
Compare
Choose a tag to compare

[email protected]

edit-view-2020-08

  • Background color of monaco editor in dark mode has changed to match the color scheme of the other parts. #736

  • Users and groups interface has been reworked and expanded. Group and user entities are separated now. Columns in the table view also changed to show user and role specific, more informative data. You can easily activate or deactive a user in the list with a switcher. Groups of the user are also enumarated. By clicking a group name you can reach the list of the members. The dialog allows to add new members to or remove from the group too. This dialog is also available in the group view by clicking on the number of members in a row. #738 #742

users-and-groups-2020-08

  • The execute action dialog (accessable from command palette) had 3 scrollbars, which made the usage of the function hard. We simplified it, and only one scrollbar remained. #763

  • This dialog had another problem: When the dialog opened the site always navigated to the dashboard. It was an unwanted side effect, so we removed it. Now the app stays at the previous surface in the background. #762

  • On page load at the content explorer views the tree opens down to the currently set path in the url. The tree always follows the navigations in the breadcrumb or in the content list. #761

  • We have started to write end-to-end tests to improve the quality of our product and ensure that it will have less hidden bugs in the future. The foundations to run these tests on GitHub are ready and we also created a helper function to login programmatically to the Admin UI. #739

@sensenet/[email protected]

  • New logger added to the package: Notification logger.
    It shows notifications in a Material UI snackbar for the user. Allowed log level is configurable to control which log messages to show as a notification. #748

July 2020

01 Jul 13:16
Compare
Choose a tag to compare

Brick by brick 🧱

As we get closer and closer to staring SNaaS, instead of hot new features stabilization and simplification came to the fore. We are working hard on making the core of the admin surface super fast, super effective and easy-to-use. Followings are the updates we've made in the last 4 weeks:

[email protected]

  • The browseType feature has undergone significant refactoring. From the three browse type only explore remained, which means that most of the features can have a common user interface making the work with contents easy-to-learn as you can see the same tree + grid or tree + action ui and with these updates we get a bit closer to a maintainable and a less error prone admin-ui. #703

  • Token expiration based browser tab freezing issues are fixed. #701

  • Some of the Document Viewer toolbar buttons are now hidden to make it clutter free. Only two zoom options remained and the two of the rotation options are also hidden now. It does not mean that this features are gone from the docviewer component as well, if you use viewer as a standalone component you can customize the toolbar yourself. #702

  • We've refactored the admin-ui drawer items and the undelying logic as well. The built-in drawer items and 'pages' (search, content, users and groups, setup, localization, content types and trash) became fix and cannot be removed or overwritten in personal settings. All of these built-in menu items got a 'protected' root, which means they have a root what you cannot go above being in a scope of a particular menu. The possibility of adding custom drawer items remaind but changed as you can see in the following snippet:

{
   "default": {
      "drawer": {
         "items": [
            {
               "itemType": "CustomContent",
               "settings": {
                  "icon": "User",
                  "title": "Profiles",
                  "appPath": "profiles",
                  "root": "/Root/Profiles",
                  "columns": ["Name", "ModificationDate"]
               }
            }
         ]
      }
   }
}

itemType could only be "CustomContent" which shows that the menu is a custom one and can be added as an additional drawer item next to the built-in ones. The most important property change is that you have to add an appPath and a root to a drawer items settings (the built-in ones and their 'protected' root works the same way). appPath is actually the name of the menu and will be displayed in the url as the top item of the scope after the browseType name (e.g. https://admin.sensenet.com/custom/explorer/system-users). With root you set the top root parent item of your custom menu, this will be your drawer item's 'protected' root.

columns setting is fully usable now used for custom drawer items' grid customization.

Personal settings is now a bit hidden for common users. It is removed from the user menu dropdown but can be reached with using the url https://admin.sensenet.com/personal-settings. #707

@sensenet/[email protected]

  • Connected to the permission API documentation and updates we ran into a couple of bugs and missing stuff in the core layer as well. The following fixes were made in the core package:
    • setPermissionInheritance method is removed and possibility of break the inheritance is moved to the method setPermissions as an optional param of the PermissionRequestBody.
    • In permission query methods the param names where not the ones that should be used in the actual OData requests so they are changed: kind -> indentityKind; level -> permissionLevel; member -> memberPath
      #721

@sensenet/[email protected]

  • As we move forward with the new documentation we improve the current client libraries with missing APIs or fixes. This time the sn-redux package got a bigger update. Permission related actions are added (HasPermission, GetPermissions, SetPermissions and for the permission queries), for further information and examples see the API docs. #721

@sensenet/[email protected]

  • As it is mentioned above the docviewer toolbar on the admin surface is now a bit simplified. This does not mean that you have to use it this way if you are using viewer as a standalone component. Related to the admin-ui changes minor improvement was also made on the docviewer toolbar widgets as well making rotation widgets configurable. You can now set how many rotation buttons you want to see setting the widgets mode to clockwise, anticlockwise or all. #702

@sensenet/[email protected]

  • The above mentioned protected root logis is added to the pickers as well. So now the root of a picker is the same as the root of menu what you're currently working. #707

Example apps

  • We've changed the Identity Server that is connected to the demo repository (dev.demo.sensenet.com) to new one that is for demo purposes and because of this we also had to change this hardcoded urls in the example apps. If you're using some of the example apps some way, take care of this changes too because the demo users can be logged in only through this demo is (its url is is.demo.sensenet.com).