Aller au contenu principal
Jahia Store
FR

Bulk edit content Module

community
Télécharger 1.2.1

Informations

Identifiant du module
contentBulkEdit
Identifiant de groupe
org.jahia.se.modules
Statut
community
Catégorie
Content Features, Admin Features, Search
Auteur
Stephane Monier
Site web du développeur
http://www.jahia.com
Nécessite Jahia
8.2.0.0
Mis à jour
2026-07-09
Source
https://github.com/Jahia/contentBulkEdit
Étiquettes
  • bulk
  • content
  • ui extension
  • search and replace
  • taxonomy

Search, select, edit — and publish — hundreds of content items at once, with fields that respect your content model.

Content Bulk Edit adds a complete bulk-editing workspace to jContent's Content Tools. Query your content with indexed full-text and date filters, edit properties through typed widgets — pickers, scoped category trees, choicelists, dates — see each item's real publication status at a glance, and push the whole selection live in one confirmed action.

Full description

Editing the same field on dozens of articles one by one is the kind of work a CMS should do for you. Content Bulk Edit turns it into a four-step flow: search, select, apply, publish.

Find exactly the content you need. Combine full-text search, content type, path, author, and publication/creation/modification date ranges — all executed by the JCR index, not in the browser. Filter by real publication state: published, modified, never published, or unpublished. After a search, the criteria collapse into a compact summary bar so results take center stage.

See the true publication status. Every row carries a color-coded status resolved by Jahia's publication engine — the same source as jContent's badges. A published article whose categories were changed yesterday shows as Modified, whether the change touched a translated field, a shared property, or a reference. Sort the table by any column, cluster the modified items, and you know exactly what needs to go live.

Edit with the right widget, not a text box. The module reads your content definitions — and your Content Editor form overrides — to render each property the way editors expect:

  • Image, file, and content pickers for reference fields (the native jContent picker)
  • Category trees scoped to the right taxonomy branch, exactly as configured in Content Editor (ChoiceTree overrides supported)
  • Dropdowns for choicelists, yes/no selectors, date and number inputs
  • Properties grouped like Content Editor: the type's own fields first, then each mixin as its own block

Stay in control of multi-valued fields. Choose per field whether new values replace or append to existing ones — for regular multi-valued properties, tags, and categories alike, with duplicates handled automatically. Need to empty a field across the selection? One checkbox clears it. Every change is listed in a confirmation summary before anything is written.

Publish in bulk. Once your changes are applied, one action publishes the entire selection — including referenced images and files — to the live site in the working language, after an explicit confirmation. Statuses refresh immediately so you can verify the result.

Safe by design. All operations run with the acting user's permissions: what you cannot edit or publish in jContent, you cannot bulk-edit or bulk-publish here. Every item is processed independently — if one fails validation or permissions, it is rolled back and reported while the rest proceed. Internationalized fields are written to the selected language.

For developers. Everything is available through a documented GraphQL extension (searchContent, getPropertyDefinitions, getCategories, bulkEditContent, publishContent) for scripted or CI-driven bulk operations. Values are plain strings; the server coerces them to the correct JCR type from the definitions.

Key features

  • Index-backed search: full-text, type, path, status, author, date ranges
  • Publication status per row (published / modified / never published / unpublished / marked for deletion), resolved by Jahia's publication engine
  • One-click bulk publish of the selection, references included, permission-gated per item
  • Sortable result table with sticky header and hover tooltips
  • Typed edit fields driven by CND definitions and Content Editor overrides
  • Replace/append mode per multi-valued property, tags, and categories
  • Explicit "clear property" action with per-item validation reporting
  • Content-Editor-style property grouping (own fields, then mixins)
  • Per-item save and publish with rollback — one failure never corrupts the batch
  • User-session security: JCR ACLs enforced end to end, guest access blocked
  • Moonstone UI with design tokens — native jContent look, including status colors
  • English and French UI, i18n-aware editing
  • GraphQL API for automation

Typical use cases

  • Recategorize or retag an entire content section after a taxonomy change
  • Fix a wrong image or link reference across dozens of pages
  • Review everything modified since the last release and publish it in one pass
  • Clear an obsolete field across a whole content type

Compatibility: Jahia 8.2+ · React 18 / Moonstone UI extension · No configuration required — install, enable on your site, and find it under Content Tools.

Vidéo

Captures d'écran

Versions

Security hardening — addresses findings 2 and 3 of an authorized security review (#1).

Security

  • getPropertyDefinitions authorization. The field previously required only an authenticated user, so anyone logged in could enumerate the property model of any node type (jnt:user, jnt:virtualsite, …) plus content-editor form overrides from all deployed bundles. It now takes a mandatory siteKey, gates on the jContentAccess permission for that site (the same permission that grants access to the jContent UI where the panel lives), and only exposes editorial content types.
  • Exact site path boundary. The site-scope check used a plain prefix match, so a prefixed sibling site key (e.g. /sites/luxeX when the site is luxe) could satisfy it. Both the search-path resolver and the result path filter now require an exact match or a /-delimited descendant.

Changed

  • Breaking (module GraphQL API): getPropertyDefinitions now requires a siteKey argument. The module UI is updated accordingly; any external caller must add it.

Upgrade note

  • The system-session ACL bypass affecting ≤ 1.0.1 (finding 1) was already fixed in 1.1.0. Anyone still on ≤ 1.0.1 should upgrade to ≥ 1.1.0.

No functional or UI changes — everything from 1.2.0 (typed bulk edit, publication status, bulk publish, sortable results) behaves identically.

Nécessite Jahia 8.2.0.0Mis à jour 2026-07-09
Nécessite Jahia 8.2.0.0Mis à jour 2026-07-09
Nécessite Jahia 8.2.0.0Mis à jour 2026-07-07
Nécessite Jahia 8.2.0.0Mis à jour 2026-04-16
Nécessite Jahia 8.2.0.0Mis à jour 2026-03-19