Übereinander liegende Menü-Marker sind optisch häufig schwer zu erkennen. Um sie zu vermeiden, erkennt Scrivito nun überlappende Marker und schreibt eine Warnung in die JavaScript Konsole:

Immer wenn das Scrivito SDK eine JavaScript-Warnung triggert (beispielsweise eine „Deprecation“-Warnung oder wenn Menüs an derselben Stelle dargestellt werden sollen), wird ein Indikator auf der Scrivito-Toolbar eingeblendet:
sich überlappende Menüs werden nur erkannt (und die dazugehörigen Warnungen angezeigt), wenn die Rails-Applikation in der „development“-Umgebung läuft. Somit werden Redakteure nicht mit Warnungen konfrontiert, die sie weder nachvollziehen noch beheben können.
Durch die Aktualisierung einer Arbeitskopie kann man es nun erkennen, wenn Inhalte einer Seite in einer anderen (nun veröffentlichten) Arbeitskopie geändert wurden. Redakteure werden darüber nun sofort informiert. So wird deutlich gemacht, dass nun Maßnahmen ergriffen werden müssen, um den Konflikt zu lösen.
Der Fehler, der angezeigt wird, wenn ein Redakteur versucht, eine Datei hochzuladen, während sich ausschließende Filter ausgewählt sind, wird nun in einem Dialog angezeigt und löst keinen Alert mehr aus.
Wir haben den In-place-Text-Editor und den String-Editor miteinander verschmolzen. Der nun einheitliche Sting-Editor geht davon aus, dass Zeilenumbrüche in Text, für den die „white-space“ CSS-Eigenschaft „pre“ ist, erlaubt sind. Mit data-newlines=true und data-newlines=false kann der entsprechende Eingabemodus spezifiziert werden. data-editor=text ist nun veraltet, wird aber weiterhin unterstützt. Bitte nutzen Sie stattdessen data-editor=string (und optional data-newlines=true).
Wir haben das Verhalten des „Hinzufügen“-Buttons im Linklist-Editor angepasst. Klickt man auf den Button, wird nun der Content Browser geöffnet, ohne dass bereits Referenzen in der Liste selektiert sind. Im Content Browser ausgewählte Elemente werden nun zur Liste hinzugefügt.
Der Inspektor des Content Browsers hat ein kleines Papierkorb-Icon, mit dem das ausgewählte Objekt gelöscht werden kann. Dieser neue Button (und der zum Löschen von ausgewählten Objekten) löst nun einen Dialog aus, der bestätigt werden muss, bevor ein Objekt gelöscht wird.
Im Content Browser können Einträge nun aufsteigend und absteigend nach dem Datum der letzten Änderung sortiert werden.
HTTP-Verbindungen, die vom SDK aufgebaut und genutzt werden, sind nun robuster. Bislang versuchte das SDK nur bei spezifischen Fehlern wie Errno::ECONNREFUSED oder Timeout::Error eine neue Verbindung aufzubauen. Jetzt wird dies auch versucht, wenn ein StandardError wie OpenSSL::SSL::SSLError, Errno::ECONNREFUSED oder Timeout::Error auftritt.
Fügt man ein neues Widget in ein Widget-Feld ein, für das nur ein einziger Widget-Typ definert ist, so wird nun direkt ein Widget des betreffenden Typs eingefügt. Zuvor öffnete sich ein Dialog, in dem nur der eine Widgettyp zur Auswahl stand. Wenn nur eine gültige Widget-Klasse existiert, wird der Menüeintrag, der normalerweise "Widget einfügen" lautet, durch die Rückgabe der description_for_editor-Methode dieser gültigen Widget-Klasse ersetzt. Die Widget-Klassen, die in ein Widget-Feld eingefügt werden können, können mit der Methode valid_widget_classes_for festgelegt werden.
-
Wenn die Applikation in der „development“-Umgebung läuft und Inhalte in-place bearbeitet werden, können nun immer Scrivito Objekt-IDs aus den HTML-Links entnommen werden. Zuvor beinhalteten Links, die auf das root-Objekt oder auf Permalinks gezeigt haben, nicht die ID des Zielobjekts. Der Grund hierfür ist, dass Scrivito die ID-Variante des Pfades nun für alle CMS-Objekte rendert. Beispiele:
/ → /9e87c6bf5a4c32d1/root_slug
/a_permalink → /0bc1a2e3afc456a7/a_slug
-
Man kann nun über alle Widgets eines CMS-Objekts iterieren:
Obj.root.widgets.each do |widget|
puts widget.id
end
Nachdem eine Seite gelöscht wurde, leitet das Scrivito SDK nun zur übergeordneten Seite weiter. Existiert diese nicht, wird auf die Root-Seite weitergeleitet.
Widgets werden nun nicht mehr unter dem Widget, dessen Menü zum Einfügen genutzt wurde, eingefügt. Sie werden an der Stelle eingefügt, an der sich das Menü befindet, das das Einfügekommando ausgelöst hat.
Mit der neuen Widget.valid_container_classes Methode können die Widget-Container-Klassen, die ein Widget einer bestimmten Klasse umgeben können, eingeschränkt werden:
class TabWidget < Widget
def self.valid_container_classes
[TabGroupWidget]
end
end
-
Die neue Test-Methode request.for_scrivito_user(test_user) erlaubt es, den Benutzer für einen einzelnen Request auf einen bestimmten Scrivito::User zu setzten.
Der Rake-Task migrate:install, der die in Gems enthaltenen Migrationen in die Applikation kopiert, ist entfallen. Diese Migrationen hatten den Zweck, die CMS-Objektklassen zu definieren, auf denen die Gems beruhten. Dies ist nicht mehr notwendig, da CMS-basierte Objektklassen abgeschafft wurden.
Man kann nun verhindern, dass Redakteure bei der In-place-Bearbeitung CMS-Objekte und Widgets bestimmter Typen anlegen, beispielsweise Fehlerseiten oder veraltete Widgets. Diese Typen können mit der hide_from_editor-Methode vor dem Seiten- und Widget-Browser versteckt werden. Die Methode ist nur bei der In-place-Bearbeitung wirksam, nicht bei Gebrauch des Ruby-APIs. Benutzerdefinierter Code für die Erzeugung von Objekten und Widgets, der auf versteckten Klassen basiert, funktioniert weiterhin.