Skip to main content

File Versions

The File Versions page browses every file managed in a NomaUBL environment (XSL, RTF, XML, configuration, scripts…), shows the version history of each file, and lets administrators edit text files, view PDFs, restore a previous version, or package files for transfer between environments.

The file repository is shared across all NomaUBL deployments — the page applies whether the source ERP is JD Edwards, SAP, NetSuite or a custom system. JDE-extracted artefacts coexist with hand-edited files; their origin is recorded in the version history (see Source badge below).


At a glance

File Versions📦 Export⤵ Import🔍 Filter…▾ 📁 xslinvoices.xslcredit_notes.xslisc-normalize.xsl▾ 📁 configconfig.jsonconfig-notifications.json▾ 📁 pdf-templatesinvoice-fr.rtf▸ 📁 scripts▸ 📁 archiveisc-normalize.xslModifierRestaurerVERSION HISTORYCURRENTv12 · 2026-05-12 14:32 · adminmanualv11 · 2026-05-10 09:14 · adminmanualv10 · 2026-04-29 17:42 · build.shbuildv9 · 2026-04-15 11:08 · jde-extractextractDIFF — v12 vs v11+ <xsl:template match="clientFacturation">+ <xsl:apply-templates select="*"/>- <xsl:apply-templates select="raison"/>[ Monaco editor opens on Edit ][ PDF viewer opens on .pdf / .rtf ]File tree sidebarfilterable · expandable foldersVersion historycurrent + previous versionsSource badgemanual / build / extractDiff + Edit + RestoreMonaco · PDF viewer · revert

Layout

The page is split into two columns:

ColumnContents
Left sidebarSearch box + tree of every versioned file in the environment. Folders are collapsible and show their file count.
Main panelToolbar + content area whose mode depends on the current selection (live file + history, package selection, editor or PDF viewer).

ElementDescription
Search boxLive filter on the file path (case-insensitive substring match).
Folder rowsOne per directory. Click to expand / collapse. The badge on the right shows the total number of files contained recursively.
File rowsOne per file with its short name and size (B / KB / MB). Click to select.
Select-all row (package mode only)Toggles selection for every file currently filtered.

When Package mode is active, every row also displays a checkbox; folder checkboxes show an indeterminate state when only some children are selected.


Single-file mode (default)

Selecting a file in the sidebar opens its version history in the main panel.

The toolbar shows the file path and a primary Upload new version action (file picker — uploading replaces the live file and snapshots the previous live file as a new historic version).

Version history table

ColumnDescription
Versionlive for the current file, v1, v2… for historic versions.
DateWhen the version was created.
SourceHow the version was produced — see source badges below.
CommentFree-text comment captured at upload (e.g. Edited in browser).
SizeStored size of the version.
ActionsPer-row buttons — see row actions below.

Source badges

BadgeMeaning
upload (blue)Manually uploaded from the toolbar or saved from the in-app editor.
restore (orange)Generated by restoring an older version (the previous live file is automatically snapshotted under this source).
jde_bip (purple)Extracted from JD Edwards BIP — JDE-specific source.
(other)Any other origin recognised by the API.

Row actions

IconAvailable onDescription
👁 ViewLive row, PDF filesOpens the PDF inline in the main panel via an <iframe>.
✏️ EditLive row, text filesOpens the file in the built-in Monaco editor.
Compare with previousEvery row except the oldest, text filesOpens the side-by-side comparison of this version against the one just before it — see Compare mode below.
DownloadEvery rowDownloads the file (live or historic). Historic downloads are named <filename>.v<n>.
🔄 RestoreHistoric rows onlyPromotes the historic version to the new live file. A confirmation dialog appears first; the previous live file is snapshotted as a new restore version.

Edit mode (text files)

Clicking the Edit icon on the live row of a text file opens the Monaco editor (the same engine VS Code uses) directly inside the main panel.

AspectBehaviour
Languages auto-detected.xml / .xsl / .xslt → XML; .json → JSON; .css → CSS; .js → JavaScript; .html / .htm → HTML; everything else → plain text.
Recognised text extensionsxml, xsl, xslt, json, txt, cfg, csv, html, htm, css, js, properties, md, log.
SaveUploads the buffer as a new version with the comment Edited in browser. The previous live file is snapshotted automatically.
CancelCloses the editor without saving.
Editor optionsMonospace font, minimap on, wordWrap: off, tab size 2, paste-formatting on, dark theme.

Compare mode

For any text file (XSL, XML, JSON, SQL, properties, MD, CSS, JS, HTML, TXT, CSV, CFG, LOG…), two versions can be opened side-by-side — the same diff view VS Code shows, useful when reviewing what a template or configuration file picked up over time. The current live file is included in the picker, so you can also compare any historic snapshot against today's state.

Opening the comparison

Two ways to enter the comparison:

  • One-click — compare with previous. Click the icon on any row of the history. The selected version opens on the right, the version just before it on the left. This is the common case when you only want to see what that snapshot introduced.
  • Compare two arbitrary versions. Turn on Compare in the toolbar, then click two rows in the history table — the order picked sets which side each version lands on. The toolbar caption shows the selected pair and offers a Confirm button to open the comparison.

The side-by-side view

invoices/invoices.xsl — v3 ↔ v4
3 changes✕ Close
v3 — 2026-04-12
v4 — 2026-05-02 live
17<xsl:variable name="currency">
18 EUR
19</xsl:variable>
42<xsl:value-of select="$amount"/>
17<xsl:variable name="currency">
18 $header/cbc:DocumentCurrencyCode
19</xsl:variable>
42<xsl:value-of select="format-number($amount, '0.00')"/>
AspectBehaviour
LayoutFull-screen, older version on the left, newer on the right. The header bar shows the file path, the two version labels and the running count of changed lines.
HighlightingEach row coloured by change — green for added, red for removed, both shades for modified. Unchanged regions can be folded.
Syntax colouringThe same Monaco-based engine used in Edit mode — language auto-detected from the file extension.
ScrollSynchronised between both panes — scrolling either side moves the other in lockstep.
CloseEscape or the Close button in the header returns to the history table.

Binary files (PDF, ZIP, images…) do not appear in the picker — comparison is only available on the text extensions listed under Edit mode.


PDF viewer

Clicking the View icon on the live row of a PDF opens the file inline in the main panel via a secured <iframe> (the auth token is forwarded as a query parameter when present). Click Close in the toolbar to return to the version history.


Package mode

Toggling Package mode in the toolbar switches the page from single-file actions to multi-file selection for transfer between environments.

ActionDescription
ExportExports every selected file as a package to download. The toolbar caption shows the number of selected files and the total size.
ImportImports a previously exported package (.zip). The status message reports the number of files imported.

Selection helpers:

  • Per-file checkboxes in the tree
  • Per-folder checkbox — toggles every descendant file at once; shows an indeterminate state when partial.
  • Select all row at the top — toggles every file in the current filter.

Quitting package mode (toggling the button off again) clears the selection.


Status messages

Inline feedback at the top of the main panel auto-clears after 4 seconds:

  • Upload success — version N created
  • Restore success — version N restored
  • Export success — N files
  • Import success — N files
  • API error message on failure.

Tips & best practices

  • Use the editor for in-place tweaks, the upload for bulk replacements. The editor saves a new version with a clear Edited in browser comment, which is easy to spot in the history.
  • Restore is non-destructive. It snapshots the current live file before promoting the historic one, so an accidental restore can itself be rolled back.
  • Package mode is the supported way to ship XSL / RTF templates between dev → recette → production. Avoid hand-copying files across environments — packaging preserves the version metadata.
  • Skip JDE-extracted files (jde_bip source) when packaging unless the receiving environment also runs against the same JDE — they are typically environment-specific outputs, not portable assets.
  • Keep an eye on the file count badge per folder when working on large XSL trees — it's the quickest way to spot a mis-packaged subset.
  • Download a historic version before restoring if you want to keep a local copy of both the current and the historic file outside NomaUBL.