import hbs from 'htmlbars-inline-precompile'; export default { title: 'Components|Diff Viewer', }; export let DiffViewerWithInsertions = () => { return { template: hbs`
Diff Viewer with insertions
{{job-diff diff=insertionsOnly}}
`, context: { insertionsOnly: generateDiff([ { Annotations: null, Name: 'Attempts', New: '15', Old: '15', Type: 'None' }, { Annotations: null, Name: 'Delay', New: '25000000000', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Interval', New: '900000000000', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Mode', New: 'delay', Old: 'delay', Type: 'None' }, ]), }, }; }; export let DiffViewerWithDeletions = () => { return { template: hbs`
Diff Viewer with deletions
{{job-diff diff=deletionsOnly}}
`, context: { deletionsOnly: generateDiff([ { Annotations: null, Name: 'Attempts', New: '15', Old: '15', Type: 'None' }, { Annotations: null, Name: 'Delay', New: '25000000000', Old: '25000000000', Type: 'None', }, { Annotations: null, Name: 'Interval', New: '900000000000', Old: '900000000000', Type: 'None', }, { Annotations: null, Name: 'Mode', New: '', Old: 'delay', Type: 'Deleted' }, ]), }, }; }; export let DiffViewerWithEdits = () => { return { template: hbs`
Diff Viewer with edits
{{job-diff diff=editsOnly}}

Often times a diff will only have a couple lines. Minor tweaks to a job spec result in small diffs.

`, context: { editsOnly: generateDiff([ { Annotations: null, Name: 'Attempts', New: '15', Old: '15', Type: 'None' }, { Annotations: null, Name: 'Delay', New: '25000000000', Old: '25000000000', Type: 'None', }, { Annotations: null, Name: 'Interval', New: '900000000000', Old: '250000000000', Type: 'Edited', }, { Annotations: null, Name: 'Mode', New: 'delay', Old: 'delay', Type: 'None' }, ]), }, }; }; export let DiffViewerWithManyChanges = () => { return { template: hbs`
Diff Viewer with many changes
{{job-diff diff=largeDiff}}
`, context: { largeDiff: { Fields: null, ID: 'example', Objects: null, TaskGroups: [ { Fields: null, Name: 'cache', Objects: null, Tasks: [ { Annotations: null, Fields: [ { Annotations: null, Name: 'Meta[one]', New: "flew over the cuckoo's nest", Old: '', Type: 'Added', }, { Annotations: null, Name: 'Meta[two]', New: 'birds on a wire', Old: '', Type: 'Added', }, ], Name: 'redis', Objects: [ { Fields: [ { Annotations: null, Name: 'image', New: 'redis:3.4', Old: 'redis:3.2', Type: 'Edited', }, { Annotations: null, Name: 'port_map[0][db]', New: '6380', Old: '6379', Type: 'Edited', }, ], Name: 'Config', Objects: null, Type: 'Edited', }, { Fields: [ { Annotations: null, Name: 'CPU', New: '1000', Old: '500', Type: 'Edited' }, { Annotations: null, Name: 'DiskMB', New: '0', Old: '0', Type: 'None' }, { Annotations: null, Name: 'IOPS', New: '0', Old: '0', Type: 'None' }, { Annotations: null, Name: 'MemoryMB', New: '512', Old: '256', Type: 'Edited', }, ], Name: 'Resources', Objects: [ { Fields: [ { Annotations: null, Name: 'MBits', New: '100', Old: '', Type: 'Added' }, ], Name: 'Network', Objects: [ { Fields: [ { Annotations: null, Name: 'Label', New: 'db', Old: '', Type: 'Added', }, ], Name: 'Dynamic Port', Objects: null, Type: 'Added', }, ], Type: 'Added', }, { Fields: [ { Annotations: null, Name: 'MBits', New: '', Old: '10', Type: 'Deleted' }, ], Name: 'Network', Objects: [ { Fields: [ { Annotations: null, Name: 'Label', New: '', Old: 'db', Type: 'Deleted', }, ], Name: 'Dynamic Port', Objects: null, Type: 'Deleted', }, ], Type: 'Deleted', }, ], Type: 'Edited', }, { Fields: [ { Annotations: null, Name: 'AddressMode', New: 'auto', Old: 'auto', Type: 'None', }, { Annotations: null, Name: 'Name', New: 'redis-cache', Old: 'redis-cache', Type: 'None', }, { Annotations: null, Name: 'PortLabel', New: 'db', Old: 'db', Type: 'None' }, ], Name: 'Service', Objects: [ { Fields: [ { Annotations: null, Name: 'Tags', New: 'redis', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Tags', New: 'cache', Old: 'cache', Type: 'None', }, { Annotations: null, Name: 'Tags', New: 'global', Old: 'global', Type: 'None', }, ], Name: 'Tags', Objects: null, Type: 'Added', }, { Fields: [ { Annotations: null, Name: 'AddressMode', New: '', Old: '', Type: 'None', }, { Annotations: null, Name: 'Command', New: '', Old: '', Type: 'None' }, { Annotations: null, Name: 'GRPCService', New: '', Old: '', Type: 'None', }, { Annotations: null, Name: 'GRPCUseTLS', New: 'false', Old: 'false', Type: 'None', }, { Annotations: null, Name: 'InitialStatus', New: '', Old: '', Type: 'None', }, { Annotations: null, Name: 'Interval', New: '15000000000', Old: '10000000000', Type: 'Edited', }, { Annotations: null, Name: 'Method', New: '', Old: '', Type: 'None' }, { Annotations: null, Name: 'Name', New: 'alive', Old: 'alive', Type: 'None', }, { Annotations: null, Name: 'Path', New: '', Old: '', Type: 'None' }, { Annotations: null, Name: 'PortLabel', New: '', Old: '', Type: 'None' }, { Annotations: null, Name: 'Protocol', New: '', Old: '', Type: 'None' }, { Annotations: null, Name: 'TLSSkipVerify', New: 'false', Old: 'false', Type: 'None', }, { Annotations: null, Name: 'Timeout', New: '7000000000', Old: '2000000000', Type: 'Edited', }, { Annotations: null, Name: 'Type', New: 'tcp', Old: 'tcp', Type: 'None' }, ], Name: 'Check', Objects: null, Type: 'Edited', }, ], Type: 'Edited', }, ], Type: 'Edited', }, ], Type: 'Edited', Updates: null, }, { Fields: [ { Annotations: null, Name: 'Count', New: '1', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Meta[key]', New: 'value', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Meta[red]', New: 'fish', Old: '', Type: 'Added' }, ], Name: 'cache2', Objects: [ { Fields: [ { Annotations: null, Name: 'Attempts', New: '2', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Delay', New: '15000000000', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Interval', New: '1800000000000', Old: '', Type: 'Added', }, { Annotations: null, Name: 'Mode', New: 'fail', Old: '', Type: 'Added' }, ], Name: 'RestartPolicy', Objects: null, Type: 'Added', }, { Fields: [ { Annotations: null, Name: 'Migrate', New: 'false', Old: '', Type: 'Added' }, { Annotations: null, Name: 'SizeMB', New: '300', Old: '', Type: 'Added' }, { Annotations: null, Name: 'Sticky', New: 'false', Old: '', Type: 'Added' }, ], Name: 'EphemeralDisk', Objects: null, Type: 'Added', }, ], Tasks: [ { Annotations: null, Fields: [ { Annotations: null, Name: 'Driver', New: 'docker', Old: '', Type: 'Added' }, { Annotations: null, Name: 'KillTimeout', New: '5000000000', Old: '', Type: 'Added', }, { Annotations: null, Name: 'Leader', New: 'false', Old: '', Type: 'Added' }, { Annotations: null, Name: 'ShutdownDelay', New: '0', Old: '', Type: 'Added' }, ], Name: 'redis', Objects: [ { Fields: [ { Annotations: null, Name: 'image', New: 'redis:3.2', Old: '', Type: 'Added', }, { Annotations: null, Name: 'port_map[0][db]', New: '6379', Old: '', Type: 'Added', }, ], Name: 'Config', Objects: null, Type: 'Added', }, { Fields: [ { Annotations: null, Name: 'CPU', New: '500', Old: '', Type: 'Added' }, { Annotations: null, Name: 'DiskMB', New: '0', Old: '', Type: 'Added' }, { Annotations: null, Name: 'IOPS', New: '0', Old: '', Type: 'Added' }, { Annotations: null, Name: 'MemoryMB', New: '256', Old: '', Type: 'Added' }, ], Name: 'Resources', Objects: [ { Fields: [ { Annotations: null, Name: 'MBits', New: '10', Old: '', Type: 'Added' }, ], Name: 'Network', Objects: [ { Fields: [ { Annotations: null, Name: 'Label', New: 'db', Old: '', Type: 'Added', }, ], Name: 'Dynamic Port', Objects: null, Type: 'Added', }, ], Type: 'Added', }, ], Type: 'Added', }, ], Type: 'Added', }, ], Type: 'Added', Updates: null, }, ], Type: 'Edited', }, }, }; }; function generateDiff(changeset) { return { Fields: null, ID: 'insertions-only', Objects: null, TaskGroups: [ { Fields: [{ Annotations: null, Name: 'Count', New: '2', Old: '2', Type: 'None' }], Name: 'cache', Objects: [ { Fields: changeset, Name: 'RestartPolicy', Objects: null, Type: 'Edited', }, ], Type: 'Edited', Updates: null, }, ], Type: 'Edited', }; }