RFC: Recurring logic redesign

RFC: Recurring logic redesign

Hello Foreman community! :wave:

We’re giving the Recurring logic page a small makeover base on your requests to make it easier and more powerful to use. We’ve made several significant changes, and we are excited to hear your opinion. This is your chance to influence the final product.

Please take a look and let us know what you think in the comments!


Current implementation

Proposed design

What’s new?

Columns

  1. Sortable ID: You can now sort the ID column, making it much easier to find specific recurring jobs.
  2. Human-Legible recurrence: The recurrence schedule is now displayed in a human-friendly format (e.g., “every day at 10:00 AM”). The original cron line is still available as a tooltip when you hover over the recurrence.
  3. Combined task info: “Number of tasks” and “limitation” are now merged into a single, clickable column that leads directly to the task list.
  4. Renamed occurrences columns: “Next occurrence” and “last occurrence” have been renamed to “Next run” and “Last run” for more straightforward language.
  5. State Column: We’ve keep states: Canceled, Finished, and Disabled. Instead of an “Active” state, we are thinking about using Scheduled. We’re open to suggestions (along with the reasoning behind them) on this naming. We’ve also added a warning icon that will appear if the recurring logic seems broken (e.g. the next run is scheduled for a time in the past).
  6. Combined state and overall run count: The state column now also includes the total number of runs, giving you a quick overview.
  7. New “Resources” column: This new column helps you distinguish the source of the recurring logic (Internal, Sync plan, or a Job invocation). This will also allow you to filter out internal runs and go easily to the e.g. sync detail page.

Detail page removal

We’re removing the detail page since all the info is now right here in the table (with the resource column). Do you have a different opinion? Tell us!

Bulk Actions

In addition to these UI changes, we’ve also added the ability to perform bulk actions. You can now select multiple recurring logics and disable, enable, or cancel them all at once.

Your feedback is crucial for us. Please, share your thoughts on these changes and let us know if you have any suggestions. We appreciate your time and contribution to making Foreman even better.

5 Likes

A little confused about the Change Sync plan action on recurring logics as shown in the community demo. Will this redirect to sync plan edit page or will we be updating the recurring logic directly? I’d prefer we use sync plans edit for any changes to the recurring logic behind the scene instead of manipulating recurring logic directly as far as sync plans are concerned.

1 Like

Actually working pretty regularly with the Recurring logic page, mostly to automate actions on clients like automated updates, restarts and such.
So seeing the redesign happen now is pretty great (thank you for taking the time!)

First, the new table functions with sorting, human-readability and such are great nice to see that! :tada:
Also I don’t have any further thoughts on the table naming, it seems to me as the best way to improve them as proposed.

Some notes for usability, actually the most used features of that page for us are:

  • Checking the overview state of the recurring tasks
  • Visiting the output of the job run of the latest (mostly, rarely the 2nd/3rd last) task occurance (the tasks/jobs overview pages can get quite convoluted, especially as the ordering on these isn’t always that the queued one is on top, but somewhere in the middle)
  • Clearing the cancelled tasks (because you can’t edit recurring tasks)

So exposing these functions directly would be great :slight_smile:

Another thing is, as the Action name will also show up in the overall task history we refrain to use this as a identifier for the overall recurring task, we use Purpose for that, something like this:

As you can see both the Action as well as Purpose columns can get quite lengthy and might get hard to read because they have so mane line breaks (especially the more similar recurring tasks you have the longer the purpose gets).
So it would be great if these columns could get more space (without removing all the other important details), or another way to make them better readable.

Also, I just only noticed some time ago, that the Clear Cancelled button does not remove recurring tasks in the finished state (somehow also makes sense), so there is no apparent option to remove these:

That’s most likely out of scope for this change, but as mentioned, not being able to edit recurring tasks is a bit of a unintuitive thing, especially if you are setting up all of these via Ansible, and you have to set a condition on the module because it will just fail if the recurring task already exists. (all it wanted to do is checking if the recurring task already exists, mostly, and rarely update it)
For the UI if this is not possible, a either recreate or cancel+recreate button would be helpful.

And finally, got used to the naming already, but some years ago when first using that, it was a bit confusing, so I think calling it recurring tasks would be better.
The reasoning behind that is, that after all they will all show up in the tasks page, right?

2 Likes

First of all thank you very much for your feedback. Let me quickly respond (from the designer perspective)

The state is still visible in the new UI. Does this suffice or do you require something more? (we can talk e.g. about position within the table)

With the link from the Tasks, you arrive at the list. Would a linked date of the last run help to navigate to the job outcome?

This is still there but hidden in the kebab. (Adding an extra click or two) However, we could make it more generic to also remove Finished tasks. @aruzicka what do you think?

I agree (based on the content). This is up to implementation. @aruzicka

Editing was technically problematic. But recreate could be a way to go (but probably not for 6.19) Let’s talk to Adam.

Page name - “Recurring tasks” can’t be used since they are not all tasks. (Adam can elaborate more). We are open to other suggestions.

Thank you again.

1 Like

All good on that regard :slight_smile:
The only thing that I just thought of for consistency, what about switching State and Resources around, because nearly all other tables have the state in the most right column? (okay more than half I would say, most overshoots a bit)

Yes that would be great, though on the 2nd thought if you want to keep the table clean, just having a option in the kebab menu of the individual item would also suffice.

Yes I saw that, I’m sorry for (often) fighting about additional click issues :slightly_smiling_face: (or padding)
If this is the design decision I will be able to live with it though ^^

Thank you too for all your efforts here again!

1 Like