Alerts users in the SilverStripe CMS when multiple people are editing the same page.

Overview

Multi-User Editing Alert

Alerts users in the SilverStripe CMS when multiple people are editing the same page.

Maintainer Contact

Julian Seidenberg

Requirements

SilverStripe 4.0 or newer

Installation

Run: composer require silverstripe/multiuser-editing-alert

The module is automatically enabled after flush=all.

Usage

Install the module and blue dots appear next to pages in the site tree to indicate where CMS authors are editing. If multiple authors edit the same page a red dot and large warning messages appears on the page.

The list of people editing the page is stored in the SS_Cache file (DynamoDB in SilverStripe Platform or Tmp), and running a flush clears the list of editors.

The module polls the server every 3 seconds when there are multiple users editing, but saves server cycles by polling about every 24 seconds when there is just a single content author editing. If a user logs out or closes their tab, they automatically get timed out and removed from the list of current editors.

You can just the timing of the pollings using the multiuser.yml config file. For example, if there are a huge amount of content authors editing at any one time, you might want to set update less frequently, as that might overload the server.

Extra bonus: the red and blue dots are SVG files, and therefore tiny to download.

See a video demo here

Attribution

Comments
  • Please tag the the SVG path resolution

    Please tag the the SVG path resolution

    Hi

    Could you please tag the change adding "vendor" to the SVG paths in master @ https://github.com/silverstripe/silverstripe-multiuser-editing-alert/commit/1be74a23c9c060d13bf1ed5e2da6a81a117ed010#diff-fac4cdfd4096f52540df16ed2c97b684

    I'm using v2.0 in an SS4.1 project with a public/ directory on a project and the paths aren't resolving.

    This may affect people using ~2.0 without a public directory so maybe a 3.0 tag is needed?

    Thanks James

    opened by MrJamesEllis 7
  • Error being emailed out.

    Error being emailed out.

    [Error] User needs to be logged in access multi-user editing data /var/lib/silverstripe/www.neweraed.co.uk.btn.dbplc.com/multiuser-editing/code/MultiUserEditingController.php:20

    opened by MattyBalaam 5
  • Update README.md and images

    Update README.md and images

    Updated README.md with Attribution for used icons in folder images/ , in adition to that is second commit with optimization of said icons. Now those icons are 75% smaller in size with no noticable visual changes.

    opened by hdpero 4
  • Fix: Compatibility issues with SS4.4

    Fix: Compatibility issues with SS4.4

    This pull request fixes an issue with the multi-user editing toast adding a horizontal scrollbar to the CMS and fixes the loading of the SVG icons when using the _resources folder.

    opened by UndefinedOffset 3
  • Stop triggering USER_ERRORs when user is logged out

    Stop triggering USER_ERRORs when user is logged out

    Currently if the user is logged out while still having an admin window open the code triggers a user error.

    This code change returns false instead and doesn't update things.

    This solves issue #5

    opened by 3Dgoo 2
  • Visual improvements

    Visual improvements

    Visual improvements mentioned in #2 . In summary:

    • updated README with new image icons attributions
    • added three new (simplified) icons
    • updated css and js

    For more details everything is commented in commits and as well in changed files.

    opened by hdpero 2
  • SVG path fix => 2.0

    SVG path fix => 2.0

    The SVG paths fix was merged into master on 20 Jun 2018 but it hasn't been merged into 2.0 yet. This is a small bugfix and shouldn't require any version bump.

    opened by OldStarchy 1
  • Updating warning message instead of rebuilding dom

    Updating warning message instead of rebuilding dom

    Instead of destroying the warning message dom elements every 4 seconds this updates just the warning message.

    First the warning is hidden. Then it is checked if the warning should display. If it should be displayed we show the warning. We then update the warning message string.

    This stops the warning from blinking when the user is hovering it.

    opened by 3Dgoo 1
  • Entire tooltop hoverable when not active.

    Entire tooltop hoverable when not active.

    The entire tooltip blocks access to any UI underneath it when not showing.

    The entire hoverable area is highlighted below.

    image

    Some solutions:

    display: none / z-index / height

    opened by MattyBalaam 1
  • Stop triggering USER_ERRORs when no user logged in

    Stop triggering USER_ERRORs when no user logged in

    Instead of triggering user errors when no user is logged in and tries to access the editing controller, better to just return a permissions failure and catch this nicely in the CMS (display the authentication modal).

    opened by dhensby 1
  • Stop entire tooltop from being hoverable when hidden.

    Stop entire tooltop from being hoverable when hidden.

    Display: none would stop the animation Height: 0 would also require altering padding z-index stacking prevents using that option

    Pushing the item left out of the viewport seems to be the most robust solution in this case outside of moving to a JS solution.

    https://github.com/silverstripe/silverstripe-multiuser-editing-alert/issues/6

    opened by MattyBalaam 0
Releases(2.0.1)
Owner
Silverstripe CMS
Silverstripe CMS is the intuitive content management system and flexible framework loved by editors and developers alike.
Silverstripe CMS
A SilverStripe module for conveniently injecting JSON-LD metadata into the header of each rendered page in SilverStripe

A SilverStripe module for conveniently injecting JSON-LD metadata into the header of each rendered page in Silver

null 4 Apr 20, 2022
YCOM Impersonate. Login as selected YCOM user πŸ§™β€β™‚οΈin frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
Prisma is an app that strengthens the relationship between people with memory loss and the people close to them

Prisma is an app that strengthens the relationship between people with memory loss and the people close to them. It does this by providing a living, collaborative digital photo album that can be populated with content of interest to these people.

Soulcenter 45 Dec 8, 2021
Silverstripe-debugbar/ - SilverStripe DebugBar module

SilverStripe DebugBar module Requirements SilverStripe ^4.0 maximebf/php-debugbar jdorn/sql-formatter Installation You can install the debug bar with

Thomas Portelange 52 Dec 21, 2022
Silverstripe-fulltextsearch - Adds external full text search engine support to SilverStripe

FullTextSearch module Adds support for fulltext search engines like Sphinx and Solr to SilverStripe CMS. Compatible with PHP 7.2 Important notes when

Silverstripe CMS 42 Dec 30, 2022
Silverstripe-searchable - Adds to the default Silverstripe search by adding a custom results controller and allowing properly adding custom data objects and custom fields for searching

SilverStripe Searchable Module UPDATE - Full Text Search This module now uses Full Text Support for MySQL/MariaDB databases in version 3.* Adds more c

ilateral 13 Apr 14, 2022
Making multiple identical function calls has the same effect as making a single function call.

Making multiple identical function calls has the same effect as making a single function call.

ζŽι“­ζ˜• 4 Oct 16, 2021
A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

null 16 Nov 11, 2022
This extension facilitates the cms editing process in your store.

Magenerds_PageDesigner This extension facilitates the cms editing process in your store. Instead of just a wysiwyg editor you now have a drag and drop

Magenerds 92 Nov 23, 2022
salah eddine bendyab 18 Aug 17, 2021
Automate aggregation tools to standard alerts from SAP PI/PO (CBMA) for internal support team

βœ… PiAlert PiAlert is system for automating the work of SAP PI/PO support team via aggregation of alerts (CBMA messages). Language support: English Рус

Ivan Shashurin 3 Dec 2, 2022
Automatically delete old SiteTree page versions from Silverstripe

Version truncator for Silverstripe An extension for Silverstripe to automatically delete old versioned DataObject records from your database when a re

Ralph Slooten 35 Dec 7, 2022
Silverstripe-ideannotator - Generate docblocks for DataObjects, Page, PageControllers and (Data)Extensions

silverstripe-ideannotator This module generates @property, @method and @mixin tags for DataObjects, PageControllers and (Data)Extensions, so ide's lik

SilverLeague 44 Dec 21, 2022
Dnsmasq GUI is a simple Web GUI for editing the /etc/hosts file on a computer

dnsmasq GUI is a simple Web GUI for editing the /etc/hosts file on a computer, with the intention of using it for easily setting up results for dnsmasq use.

Alex Cheer 4 Nov 27, 2022
This module integrates Silverstripe CMS with Google Translate API and then allows content editors to use automatic translation for every translatable field.

Autotranslate This module integrates Silverstripe CMS with Google Translate API and then allows content editors to use automatic translation for every

null 4 Jan 3, 2022
Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use.

Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use. This package allows you to use Shiki from PHP.

Spatie 229 Jan 4, 2023
Share value objects that contain the same primitive value as a singleton

sharable-value-objects Share value objects that contain the same primitive value as a singleton. Singletons are kept under WeakReference objects. Inst

mpyw 5 Nov 14, 2021
A layout field that forces translations to have the same structure.

Kirby translatedlayout plugin A layout field that forces translations to have anidentical structure to the one of the default language. This is an exp

Daan de Lange 12 Apr 25, 2022
Live chat with several people.

chat What can you do on this application? you can create an account you can talk live with several people you can edit any information on your account

Narcis Lazar 8 Nov 10, 2022