Zum Inhalt springen
Pivotick
Main Navigation Startseite
Erste Schritte
Konfiguration
API-Referenz
GalerieProjekteAusprobieren!

Deutsch

English
简体中文
Français
Português

Deutsch

English
简体中文
Français
Português

Darstellung

Sidebar Navigation

Erste Schritte

Projekte mit Pivotick

Konfiguration

Callbacks

Kantenebenen

Vereinfachen

Layout

Darstellung

Simulation

Oberfläche anpassen

Seitenleiste

Tooltip

Kontextmenü

Filter

Legende

Datentabelle

Oberflächengestaltung

Oberfläche übersetzen

Plugins

Pivotick-API

Pivots und Anreicherung

Pivot-Ergebnisse speichern

Rückgängig und Verlauf

Sicherheit

API-Dokumentation

Galerie

Grundlagen

Knotengestaltung

Kantengestaltung

Layouts

Ereignisse und Callbacks

Oberflächenanpassung

Bearbeiten und Erstellen

Notizen und Anmerkungen

Filter, Suche und Hierarchie

Programmatische Steuerung

Themes und Leistung

Pivots und Anreicherung

Anwendungsbeispiele

Rückgängig machen und Verlauf ​

Die beiden Schaltflächen in der oberen Leiste sind geteilte Schaltflächen: Das Symbol bewegt sich einmal, die Einfügemarke öffnet den gesamten Verlauf. Es handelt sich um eine Zeitleiste mit einer Linie „jetzt“ – die Zeilen darüber wurden rückgängig gemacht, die Zeilen darunter können noch rückgängig gemacht werden – und wenn Sie auf eine Zeile klicken, gelangen Sie dorthin.

Machen Sie etwas Geschichte und öffnen Sie sie dann:

  • Knoten ausblenden oder Knoten löschen aus dem Rechtsklickmenü eines Knotens
  • Erstellen ▸ Knoten hinzufügen auf der linken Leiste und dann auf die Arbeitsfläche klicken
  • Führen Sie einen Pivot aus, falls Sie einen haben – eine Aufnahme ist ein Eintrag wie jeder andere

Bewegen Sie den Mauszeiger über eine Zeile und sie markiert die Spanne, die ein Klick umkehren würde, gibt den Nettoeffekt in der Fußzeile an und prognostiziert ihn auf der Arbeitsfläche: Was gehen würde, fließt dort ab, wo es steht, und was zurückkommen würde, wird dort umrissen, wo es landen würde. Ctrl + Z geht ohne Menü zurück.

Das Rückgängigmachen ist zusammenhängend: Wenn Sie drei Reihen nach unten zielen, werden diese drei wie ein Stapel umgekehrt.

js
// Nothing here switches the history on: `graph.history` records the four kinds of
// composition change on its own, and the two split buttons in the header are wired to
// it. `mode: 'full'` is what brings the header the buttons live in, and the left rail's
// Create tool.
const options = {
    UI: {
        mode: 'full',
        // Off: this card is about the top bar, and `full` mode's minimap and data dock
        // are neither (see the Minimap and Data table cards for those).
        minimap: false,
        table: false
    },
    render: { nodeTypeAccessor: (node) => node.getData().kind }
}
js
// A consumer that writes a change through to its own backend says so. Undo makes no
// compensating write, so it follows the direction of yours: a creation still reverses
// and the row is chipped `saved`, while a deletion is sealed — undoing it would put
// back a node your backend no longer has.
const writeThrough = {
    callbacks: {
        onBeforeNodeCreate: async (ctx) => {
            const values = await ctx.promptData({
                fields: [{ key: 'label', label: 'Name', type: 'text' }]
            })
            if (!values) return false
            const saved = await myBackend.create(values)
            return { accept: true, id: saved.uuid, data: values, persisted: true }
        },
        onBeforeDelete: async (ctx) => {
            await myBackend.remove(ctx.nodes.map((node) => node.id))
            return { accept: true, persisted: true }
        }
    }
}
js
const data = {
    nodes: [
        { id: 'gw', data: { label: 'gateway-01', kind: 'Host' } },
        { id: 'db', data: { label: 'orders-db', kind: 'Database' } },
        { id: 'api', data: { label: 'orders-api', kind: 'Service' } },
        { id: 'cache', data: { label: 'session-cache', kind: 'Service' } },
        { id: 'job', data: { label: 'nightly-export', kind: 'Job' } },
        { id: 'sftp', data: { label: 'partner-sftp', kind: 'Host' } }
    ],
    edges: [
        { from: 'gw', to: 'api', data: { label: 'routes' } },
        { from: 'api', to: 'db', data: { label: 'reads' } },
        { from: 'api', to: 'cache', data: { label: 'reads' } },
        { from: 'job', to: 'db', data: { label: 'reads' } },
        { from: 'job', to: 'sftp', data: { label: 'writes' } }
    ]
}

„Undo“ schreibt nie in Ihr Backend, daher folgt eine Änderung, die Sie durchgeschrieben haben, der Richtung, in die sie gegangen ist. Eine Erstellung wird immer noch rückgängig gemacht – die Arbeitsfläche verliert, was das Backend behält, und die Fußzeile zählt es (Undoes 2 steps · 1 item saved upstream). Eine Löschung ist versiegelt: aufgelistet, nie rückgängig gemacht, und ein Bereich, der eine enthält, geht darüber (Undoes 2 of 3 · 1 saved item kept).

Unter Rückgängig machen & Verlauf finden Sie Informationen zu den vier Arten von Einträgen, zu dem, was absichtlich nicht aufgezeichnet wird, und dazu, wie das Rückgängigmachen einer Aufnahme dazu führt, dass die Kandidaten wieder in den Triage-Bereich gelangen.

Pager
Nächste SeiteErste Schritte