We are happy to announce that it is now possible to use all the transformation parameters made available by Imgix on SVG files as well!
It is important to note that as soon as a transformation parameter is added to the URL of an SVG file, Imgix will proceed to rasterize the SVG, and the transformations will be applied to the rasterized version of the image.
By default an SVG file with any transformation parameter will be converted in PNG format, but you can request a different output format with the fm
parameter.
A small addition to our Plugin SDK: it is now possible to retrieve the number of blocks currently used inside a record via the ctx.blocksAnalysis
property.
The information is exposed in every hook related to records editing, namely Field extensions, Sidebar panels, and Form outlets:
import React from 'react';import ReactDOM from 'react-dom';import { connect, RenderItemFormOutletCtx } from 'datocms-plugin-sdk';connect({itemFormOutlets(model, ctx) {return [{ id: 'myOutlet' }];},renderItemFormOutlet(outletId, ctx) {const {blocksAnalysis: {usage: {/** Total number of blocks present in form state */total,/** Total number of blocks present in non-localized fields */nonLocalized,/** Total number of blocks present in localized fields, per locale */perLocale,},/** Maximum number of blocks per item */maximumPerItem,},} = ctx;// render the outlet here},});
In the content navigation bar, it is now possible to associate menu items to specific shared filters, so that the user clicking on the item will see a predefined set of filters, table columns and ordering:
We have extended the capabilities of our record filters, which now behave like fully fledged views!
A filter can now store also a preference of ordering, and the table columns most suitable to consume that specific filtering:
We just introduced a new parameter that can be added to the filter
parameter of site search to enable a fuzzy search. When the parameter fuzzy
filter is present, our search engine will find strings that approximately match the query provided.
Here is an example of how to use the feature:
const searchResults = await client.searchResults.list({page: {offset: 200,limit: 20},filter: {fuzzy: 'true',query: 'florance',build_trigger_id: '44',locale: 'en'}});searchResults.forEach((searchResult) => {console.log(searchResult);});
In this example, strings like florence will be matched, even if the query is florance.
Please refer to the site search page in the Content Management API documentation for a complete example.
We subtly changed the way of working for sortable and tree models. Your content may be affected only if the draft/published system is enabled for some of your models.
Up until now, when a model was using the draft/published system, the user was forced to republish the records after updating the record position or rearranging the tree.
As of today, the changes to records' position of a model sortable (i.e. its position in the list) or tree (i.e. its position in the tree) are immediately reflected on the GraphQL published endpoints: you don't need anymore to publish the record again.
This change only applies to models with draft/published system enabled.
Our integration with Mux is getting used more and more, so we can finally offer a better price for the streaming and encoding addons.
Here's the changes that we have already applied:
extra video encoding now comes at €9/mo every 180 mins of extra uploaded footage, instead of €19 for 300 mins
all the plans get at least 30 minutes of included video encoding
extra video streaming now comes at €19/mo every 300 hrs of extra video streaming time, instead of €29 for 250hrs
All the new addon prices are automatically applied on the existing plans, no need to do anything. Also the new price is going to be applied to all the extras made in July.
The pricing changes apply only on the per-account pricing plans. If you are still on a legacy plan and if you want to get the new pricing get in touch over at support@datocms.com so that we can help you migrating.
We just added a new type of validation you can enforce on your asset fields (both single/multiple).
It's called "Image transformable by Imgix", and you can use it every time you want to make sure that the asset uploaded is in a format that Imgix can properly understand and apply transformation parameters to — ie. resize/crop/etc.
As of today, the main difference with the regular "Image" validation is that SVG files are not allowed as a format, as Imgix does not apply transformations parameters on them, but the general idea is that as Imgix supports new input formats, the validator will be updated to be always kept in sync.
A small addition in the records collection index: you can now filter records by their valid/invalid state!
To ensure that complex composition of Imgix params resolve correctly even when nested several levels deep, the Content Delivery API now automatically generates Imgix URLs using the base64 variant when needed.
As an example, the following query:
{author {avatar {url(imgixParams: {txt: "Hello world"})}}}
Now returns an URL using the txt64
variant of the same transformation, as suggested by Imgix:
https://www.datocms-assets.com/205/1636982597-image.jpg?txt64=SGVsbG8gd29ybGQ