Skip to content

CtrlPortals 3.26.9.28

Released: 2026-09-07 Requires M-Files: 23.6.0.0

One set of data, four ways to see it. This release introduces the Multi View component, brings spreadsheet-style editing to every list, lets charts run straight off M-Files objects, and hardens the application from the browser to the server. It also carries everything from 3.26.8.0 (per-portal configuration nodes, richer M-Files plots), which never shipped on its own.

Multi View — list, calendar, kanban and gantt over the same objects

Section titled “Multi View — list, calendar, kanban and gantt over the same objects”
  • One data source, four modes: point the component at an M-Files view or search (or an admin-configured SQL query), map a few fields, and users switch between List, Calendar, Kanban and Gantt with one click. The data is fetched once and every mode renders from it.
  • Shared tooling in every mode: a search box, structured filters (Filter ▸ column ▸ include / exclude with a searchable picker of the values actually present), Colour by a field with a legend, Group by, object and value-list icons, and summary totals (sum / average) in the list footer and on each kanban lane. Selecting an item in one mode selects it in the others, and the M-Files listing follows the selection on a dashboard. The applied filters are listed inside the filter panel, and the Filter button carries their count while it is closed.
  • Right-click anything: rows, cards and bars share one context menu — open, filter by this value, open the view folder, delete where the user has rights, and the file actions M-Files offers.
  • Calendar: drag an event to reschedule it, drag across empty days to create one prefilled from the data source, a Year view next to month / week / day, and configurable business hours and time-slot length.
  • Kanban: drag cards between lanes to change the bucket value (also on the classic desktop client); lanes that would reject the drop are greyed out. Users can reorder, minimise and colour lanes for themselves; an administrator can save one layout as the common default that everyone starts from. A lane can play a little celebration when a card lands in it.
  • Gantt: Year / Month / Week / Day scales, panning past the data in either direction, drag to reschedule, drag from one bar to another to draw a dependency, and swimlanes by a group field.
  • Live: with an auto-refresh interval set, the component quietly re-checks for changed objects and merges them in — no reload, no lost selection or scroll position.
  • Excel export of everything, of the filtered rows, or of the selection.

Edit data right in the list — like a spreadsheet

Section titled “Edit data right in the list — like a spreadsheet”
  • Click into a cell to edit text, numbers, dates, yes/no and lookups; move with the keyboard; select a run of cells and fill them in one go (drag, Ctrl / Shift-click, Shift + arrow); then save all changes at once, with the usual M-Files check-out / check-in and a comment if you like.
  • Available in the Multi View list, the classic List View, and the drill-down tables under M-Files charts.
  • Permissions are respected: a cell is only editable when the user may edit that object and that property, checked when they try, not for every row up front. Automatic and read-only properties stay read-only.
  • Create on the spot: when a lookup value is not found, the editor — and the form fields — offer to create the object or value-list item, as M-Files itself does.
  • A controls row with + New, search and the structured filters, matching the Multi View.
  • Colour by a property with a legend, and icons for objects and value-list items in cells.
  • Collapsible groups, an optional horizontal scroll for wide lists with a sticky header and a sticky totals / paging footer, single-line cells that ellipsize with the full text on hover, long texts clamped with a More link, and many-value lookups capped with a +N more link that opens the full list.
  • A right-click menu on rows and on view folders.
  • The Plot component can take its data straight from M-Files objects (a view, a search or a class), not only from SQL. Aggregate several numeric properties as separate series, and filter by the context object or the signed-in user’s employee (see 3.26.8.0).
  • Click a bar or slice to drill into the rows behind it, in a table with the same filters, colours, icons, editing and Excel export as the lists. The drill-down opens in a fluid modal that never exceeds the window.
  • A Refresh button, deterministic series ordering and colours, configurable axes, labels and legends, and correct period gaps, undated rows and cumulative totals on date-grouped charts.
  • Running totals per visual: a line or scatter visual of the Plot component has its own Cumulative option, so one visual can show the year-to-date while another shows the monthly figures. The total holds over a period with no value rather than dropping to zero. (The widget-level Cumulative stays for the Plot View.)
  • Gridlines that fit the bars: a grouped bar chart (several series side by side) draws its gridlines between the groups, so each cluster sits in its own lane with the label centred beneath it; a single-series or stacked bar chart keeps the line through the bar with the label on it. Both plot components.
  • Right-click a value-list item in a form or list to rename it, give it an icon (upload a PNG) or delete it — each checked against the user’s rights.
  • Delete objects from the lookup and row menus where the user has rights.
  • Every segment on a portal or dashboard has a small coloured corner at its top right. Click it and that segment takes the whole portal area between the toolbar and the footer, so one list, board or chart gets all the room there is; the corner (or Escape) puts it back. Charts, tables and the gantt re-measure themselves for the new size.
  • A portal or dashboard popped out into its own window opens without the toolbar: nothing to close, pop out or refresh across the top of a window that is the thing itself. A small tab on the top edge shows the toolbar when it is wanted, and hides it again. No animation; it is either there or not.
  • A popped-out portal’s window is titled with the object’s name, not its class, on both clients.
  • Refresh Configuration re-applies the new configuration to the dashboard or portal that is open; a dashboard that has been deleted closes itself.
  • A component’s Name now labels its row in the configuration tree, and a one-time upgrade fills the Name in from the component’s type for existing configurations. Plots, list views and multi views can carry a Title.
  • Every portal and dashboard has its own configuration node, with an overview page and add / remove from the tree (3.26.8.0).
  • The portal follows the M-Files design language more closely: the Open Sans typeface, flat tables, one 8 px card radius across segments, tabs, accordions and cards, and the vault’s accent colour on the active tab, on selections and on calendar events and gantt bars.
  • A consistent container / cell padding system, so forms, accordions, tabs and menus no longer double up their gutters; tab strips that overflow get a more menu that lights up when the active tab is hidden.
  • The calendar and gantt share one toolbar, so Today, previous / next and the scale buttons sit in the same place when switching modes.
  • One gutter everywhere: the content area no longer adds a sliver of padding of its own on top of the grid’s, so every gap on a portal is exactly one unit, the same unit a full-screen segment shows.
  • Startup you can trust: a failure while Portals starts no longer takes the M-Files server down with it; startup is staggered so Portals stops colliding with other applications; transient database deadlocks are retried; and the configuration is validated against one snapshot of the vault structure instead of one round-trip per identifier.
  • Clients recover on their own: while the vault is restarting, both clients retry on a schedule and show a Refresh configuration action that always works. Every component (plots, calendars, lists, multi views, drill-downs) auto-retries a transient failure and otherwise shows a recoverable panel with a Retry button instead of a blank space.
  • Faster and smaller: large datasets stream in with a progress bar; the plotting and Excel libraries load only when a component needs them; the bundle is markedly smaller, and the classic client no longer renders in quirks mode.
  • One Excel export across all components, styled consistently, with locale-formatted numbers written as real numbers.
  • Comments: mentions in an edited comment now notify the people mentioned; you are no longer emailed about your own comment; an edited comment’s notification has its subject and text the right way round; a markdown table in one comment no longer blanks the whole comment list.
  • Plots: a Cache lifetime of 0 now works as documented instead of spinning forever; blank numeric cells no longer match number filters.
  • The new M-Files Web (vNext) client shows the right-pane portal correctly on first launch, and the selection handler attaches to the initial listing.
  • Stored cross-site scripting closed across the portal. Vault data — object titles, property values, comments, user, class and file names — is now escaped at every place it reaches HTML, and rendered markdown is sanitised on its way out. Links that open outside the portal are checked against an allow-list of schemes first.
  • The server trusts its own configuration, not the request. Extension methods run as the calling user, so M-Files permissions apply to what they read. An M-Files plot visual and a SQL query are identified by their configured identity; a client can choose which configured visual or query runs but cannot change a field of it, and an unknown identity is refused. Edits through a dataset re-check that the column may be edited before writing.
  • Save changes with a cell editor still open no longer discards the typed value.
  • Dates no longer shift by one day for users west of UTC, in the cell editor and in the classic List View.
  • A drill-down from a chart with empty label ids opened the wrong record; the ids are now aligned.
  • Fourteen standard folder columns rendered a developer string instead of a blank; Checked out to showed a raw user id.
  • Kanban lane preferences did not roam on M-Files Web Access.
  • Typing in the Search all columns box on a dashboard lost the caret after every character: applying the search re-selected the rows, the M-Files listing followed, and the client moved focus to it. The box keeps its focus while you type.
  • After adding a filter the value picker kept its picked values; every value input is now empty, ready for the next filter.
  • The + New, Filter, Edit and buttons, the mode switcher and every filter input are the same height; the lookup value picker stood a head taller than its neighbours.
  • Gantt: dependency lines drew backwards or zero-length when a successor started at or before its predecessor; a short bar is no longer mistaken for a milestone; a bar with no end date is one day long.
  • Multi View filters on values containing &; the SQL Title column no longer leaks into the displayed columns.
  • Calendar week view broke when no slot duration was configured.
  • A chart whose labels look like numbers (a value list of “25”, “50”, “75” for percentages, say) drew them on a number axis, spaced by value; they are categories again, one bar each.
  • Drilling into a chart whose series had a long name (a customer, typically) showed every row instead of that series’ rows: the shortened legend text was sent back as the series name. The click now identifies the series by its value, and a drill-down that matches nothing is logged as such.
  • The close button on a chart drill-down did nothing; only clicking outside the dialog closed it.
  • A chart that failed to load showed its error panel above a blank 200px box; it now shows just the panel.
  • The gantt’s name column took a fixed 220px, most of a narrow screen. It now takes about a third of the component’s width, never more than before.
  • Two placeholder-expansion errors were written to the Windows event log; they now go to the application log like everything else.
  • Multi View is a new component type. Under Multi View, set the Data source, the Default mode, and the per-mode field mappings: Calendar: start field enables the calendar, Kanban: bucket field enables the kanban, Gantt: start field enables the gantt. Optional: Auto-refresh interval (seconds), Order by field, List: group field, Icon field, Colour by field, Summary fields, card detail fields, gantt group and dependency fields.
  • Multi View list editing is off by default. The Multi View gains List: allow editing; turn it on for the components whose list should offer the Edit button and cell editors. Calendar and kanban dragging is not affected by it.
  • List view options gain Horizontal scroll, off by default so existing lists look as before.
  • Calendar components gain Time slot length (minutes).
  • Common kanban lane layouts can be saved by users holding the Manage common views vault right; everyone else saves personal layouts only.
  • Map visuals are no longer rendered. The plot library now ships in its basic form (bar, pie, line, scatter, indicator); a visual configured as Map shows nothing. Convert such visuals to another type.
  • M-Files plot visuals are matched by configuration identity. A plot that is open while its configuration is changed may show an error until the portal is reloaded.
  • SQL queries and M-Files plot definitions run only as configured: a request that does not match a configured query or visual is refused.
  • The classic (older) M-Files desktop client does not get sticky list headers; that is a limitation of its browser engine.