CHANGELOG: Oct 27 / Sort() and First() in formulas, Undelete Types and Fields, Delete Workspace, Pen

Sort(), First() and Last() in formulas :1st_place_medal:

Now you can do clever things with collections, like sort them and extract the first or last element.

Epics.Sort(Name).First().Name

Companies.Sort([Creation Date], false).First().Contacts.Count()

Companies.Sort(Name).First().Country.Name

Undelete Types and Fields :sun_behind_small_cloud:

Sometimes you delete a field. Or a Type with 10000000 entities. Manual fields or Types restoration sucks. We got fed up and implemented Undelete action. Find deleted Types and Fields in Audit Log, get them back and sleep well.

Delete Workspace :cloud_with_lightning_and_rain:

Manual workspace deletion sucks. We got fed up and implemented Delete Workspace functionality. If you no longer love Fibery, use it. Just try. Go for it. It deletes EVERYTHING (GDPR is happy).

Whiteboard: Handwriting pen :writing_hand:

Whiteboard got better. Draw something ugly!

Fixed bugs :shrimp:

  • Android/Chrome: Header is hidden under the address bar, so it’s impossible to open left menu
  • Email sync: It’s impossible to sync parent folder if there is a child folder inside it
  • Do not send 2 notifications on mention in comment
7 Likes

Woot! First() !

This is such an important addition. Any chance First() and Last() can accept a count argument? So first/last 5 items, with the number either hardcoded or coming from another field?

Also any progress on the self-referencing in formulas?

It would really make the new array functions powerful (e.g. to find that last meeting, filter all meetings prior to this meeting and return the first one)

2 Likes

Could you please share the scenario behind this?

Agree about self-referencing Formulas in general.
Where would you get all the meetings from though? :slight_smile:
This looks like a task for a Rule with a Find step (coming later :crossed_fingers:) rather than for a Formula.

In a different context, I would use a "Top (n) Entities" function thus:

Once we have Blocks, define the contents of a Block with a Formula/Rule to:

  • transclude here the “Description” fields of the five most recently created Meeting Notes entities.

I.e., synthesize a “running view” of the (hopefully editable) RichText content from just the five most recent Meeting Notes.

Because looking at a single Meeting Notes entity does not give enough history for many purposes, and conversely we don’t want a view that pulls in all 800+ past meetings.

2 Likes

One of the areas I was thinking of using this is to actually select top five incomplete tasks for a project at our weekly standup meeting. I have a scoring formula and was thinking that it would be really helpful to filter out incomplete tasks (doable right now) and then sort by rating and return top five. I can always pull up a filtered/sorted board for this but having this as part of the meetings notes is quite helpful.

I also agree with @Matt_Blais in that once blocks are available, it would be great to be able to basically run a query for top five requests, top five tasks, etc.

I have a “meeting type” type where I group meetings together and was really thinking it would be good to have the formula return the previous meetings automatically. So the formula I thought would look like:

[Meeting Type].Meetings.Filter(Date < this.Date).Sort(Date, false).First()

The only thing missing is this.Date which should return the date for the current meeting.

I don’t know if that makes sense.

1 Like

Perhaps First() could be extended to take an argument: First(5)

We have an organic solution for this in the backlog with a codename Feed View, stay tuned :wink:

Yep, this definitely sounds like a View. A Context View you can put right inside your meeting notes. Again, part of the Blocks initiative.

[Meeting Type].Meetings

This is already too much to ask, unfortunately. Just imagine how often the Formula has to recalculate — this scenario begs for Rules :pray:

Fibery Formula functions always return a predictable kind of result. This means First() can’t sometimes return a single Entity and sometimes a collection — otherwise chaining like .First().Name won’t be possible.

We can create a separate function though. So far it seems like it will bring more harm than good but we are eager to see more scenarios.

3 Likes

I see what you are saying and it makes a lot of sense :slight_smile: I will set it up like that :pray:

1 Like

I’m just thrilled to even have first() and last(). Thanks dev team!!!

4 Likes

Hey, sorry if this should be obvious, but how do you access this in Collections? I was looking for a new option in my Collections but I don’t see anything. By “Collections” I’m referring to the area in an Entity where you see related entities from a Type that are children of the said Entity.

Thanks!

@B_Sp, Use these in a formula. For example, if your “children” are in a collection called myKids, use a formula field to do something like:

myKids.Sort([Creation Date], false).First()

This Formula field should then become a “to-one” reference (not a collection) to one of the entities in myKids.

2 Likes

Thank you @Matt_Blais! That is simply too technical for us to use right now. Over time I hope Fibery can develop a simple filter/sort dialog next to the “Collections” area within entities that anybody could set up as simply as in Excel, or even the existing sort/filter we have in Fibery when it comes to Table View. I assume @antoniokov you guys are open to developing this functionality in a more user-friendly way down the road in the not-too-distant future? Being able to easily control what shows in Collections, like only “done” tasks within a Project, would really be a big piece of making Fibery more accessible to mass users I think!

Thanks!

1 Like

Any thoughts of enabling formulas in “Rich text” or Documents? this would be really cool to generate more readable and dynamic data

Most likely it can be a separate block, implementing this inside rich edit is harder. What are your cases?

1 Like

Building ingestable summaries/reports to send to our team and partners, either sharing the doc or by sending them in a weekly email. It’s more about formatting a readable content:
For ex. last month we did X amount of sales at Y % conversion rate. Top 5 partners are x, y, z (or a list) etc

3 Likes

Yep, we are most likely to replace the hardcoded Collections with Context Views in the scope of Blocks initiative. This means filters, sorting, color coding — everything that comes with proper Views.

2 Likes

That will be HUGE :heart_eyes::heart_eyes::heart_eyes:

3 Likes