Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

N8n 3194 output panels #3097

Merged
merged 137 commits into from
Apr 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
be59334
update main panel
mutdmour Mar 25, 2022
83460e9
finish up tabs
mutdmour Mar 28, 2022
b81c8ea
fix docs link
mutdmour Mar 28, 2022
83c7e20
add icon
mutdmour Mar 28, 2022
3653aab
update node settings
mutdmour Mar 28, 2022
352583d
clean up settings
mutdmour Mar 28, 2022
b4a49b2
add rename modal
mutdmour Mar 28, 2022
c3e9cbc
fix component styles
mutdmour Mar 28, 2022
4c3231e
fix spacing
mutdmour Mar 28, 2022
6d49f99
truncate name
mutdmour Mar 28, 2022
0402bd4
remove mixin
mutdmour Mar 28, 2022
65fd42d
fix spacing
mutdmour Mar 28, 2022
b50e143
fix spacing
mutdmour Mar 28, 2022
d4acba8
hide docs url
mutdmour Mar 28, 2022
ab840e7
fix bug
mutdmour Mar 28, 2022
f5df535
fix renaming
mutdmour Mar 28, 2022
32ec513
refactor tabs out
mutdmour Mar 28, 2022
865b795
refactor execute button
mutdmour Mar 28, 2022
56f02b3
refactor header
mutdmour Mar 28, 2022
1057616
add more views
mutdmour Mar 28, 2022
f42db21
fix error view
mutdmour Mar 28, 2022
58af5f7
fix workflow rename bug
mutdmour Mar 29, 2022
236e736
rename component
mutdmour Mar 29, 2022
de3f053
Merge branch 'n8n-3193-main-panel' of github.com:n8n-io/n8n into N8N-…
mutdmour Mar 29, 2022
fe26979
fix small screen bug
mutdmour Mar 29, 2022
2051ee6
move items, fix positions
mutdmour Mar 29, 2022
a5a9243
add hover state
mutdmour Mar 29, 2022
dde78de
show selector on empty state
mutdmour Mar 29, 2022
85b42b2
add empty run state
mutdmour Mar 29, 2022
d04078a
fix binary view
mutdmour Mar 29, 2022
fa555b3
1 item
mutdmour Mar 29, 2022
d41c606
add vjs styles
mutdmour Mar 29, 2022
0bb3c64
show empty row for every item
mutdmour Mar 29, 2022
4344cc6
refactor tabs
mutdmour Mar 29, 2022
b32ee74
add branch names
mutdmour Mar 29, 2022
6215764
fix spacing
mutdmour Mar 29, 2022
329da9e
fix up spacing
mutdmour Mar 29, 2022
aae7987
add run selector
mutdmour Mar 29, 2022
ed1aa8d
fix positioning
mutdmour Mar 29, 2022
5b8dd35
clean up
mutdmour Mar 29, 2022
9e546d9
increase width of selector
mutdmour Mar 29, 2022
d24d8d8
fix up spacing
mutdmour Mar 29, 2022
f6aaa32
fix copy button
mutdmour Mar 29, 2022
c951ece
fix branch naming; type issues
mutdmour Mar 30, 2022
0d88d9d
fix docs in custom nodes
mutdmour Mar 30, 2022
f5f2df7
add type
mutdmour Mar 30, 2022
f906dbf
hide items when run selector is shown
mutdmour Mar 30, 2022
3c495d5
increase selector size
mutdmour Mar 30, 2022
e77270d
add select prepend
mutdmour Mar 30, 2022
bc5445a
clean up a bit
mutdmour Mar 30, 2022
8ad7b16
Add pagination
mutdmour Mar 30, 2022
665f826
add stale icon
mutdmour Mar 31, 2022
8edb68d
enable stale data in execution run
mutdmour Mar 31, 2022
8fe417a
Revert "enable stale data in execution run"
mutdmour Mar 31, 2022
da52413
move metadata to its own state
mutdmour Mar 31, 2022
f951ec0
fix smaller size
mutdmour Mar 31, 2022
172bb82
add scroll buttons
mutdmour Mar 31, 2022
d81a8df
update tabs on resize
mutdmour Mar 31, 2022
fec26a8
update stale data on rename
mutdmour Mar 31, 2022
9b6a41d
remove metadata on delete
mutdmour Mar 31, 2022
ddd6bed
hide x
mutdmour Mar 31, 2022
291c235
change title colors
mutdmour Mar 31, 2022
43e0940
binary data classes
mutdmour Mar 31, 2022
0a330df
remove duplicate css
mutdmour Mar 31, 2022
09b697d
add colors
mutdmour Mar 31, 2022
b8ae4a6
delete unused keys
mutdmour Mar 31, 2022
31a3360
use event bus
mutdmour Mar 31, 2022
2c6dac6
update styles of pagination
mutdmour Apr 1, 2022
40c951f
fix conflict
mutdmour Apr 6, 2022
64a0cd2
fix ts issues
mutdmour Apr 6, 2022
6f51f11
fix ts issues
mutdmour Apr 6, 2022
c7c5862
use chevron icons
mutdmour Apr 6, 2022
adb6b37
fix design with download button
mutdmour Apr 6, 2022
9572a3b
add back to canvas button
mutdmour Apr 6, 2022
cf563e5
add trigger warning disabled
mutdmour Apr 6, 2022
f783eb3
show trigger warning tooltip
mutdmour Apr 6, 2022
98d64f1
update button labels for triggers
mutdmour Apr 6, 2022
3549ea7
update node output message
mutdmour Apr 6, 2022
6705afb
fix add-option bug
mutdmour Apr 6, 2022
f24064c
add page selector
mutdmour Apr 6, 2022
2f4cda1
fix pagination selector bug
mutdmour Apr 6, 2022
6ca06cd
fix executions bug
mutdmour Apr 6, 2022
4172809
remove hint
mutdmour Apr 6, 2022
42217dd
add json colors
mutdmour Apr 6, 2022
7df4d3a
add colors for json
mutdmour Apr 6, 2022
a9ffef6
add color json keys
mutdmour Apr 6, 2022
05aa2d5
fix select options bug
mutdmour Apr 6, 2022
ae9bb9b
update keys
mutdmour Apr 6, 2022
e8f9fc0
address comments
mutdmour Apr 7, 2022
da5015a
update name limit
mutdmour Apr 7, 2022
22df4d8
align pencil
mutdmour Apr 7, 2022
87a1e31
update icon size
mutdmour Apr 7, 2022
a3a2703
update radio buttons height
mutdmour Apr 7, 2022
4f5412a
address comments
mutdmour Apr 7, 2022
e52df91
fix pencil bug
mutdmour Apr 7, 2022
e8f9fa6
change buttons alignment
mutdmour Apr 7, 2022
9aaf988
fully center
mutdmour Apr 7, 2022
f9f4948
change order of buttons
mutdmour Apr 7, 2022
8cbe81f
add no output message in branch
mutdmour Apr 7, 2022
f012437
scroll to top
mutdmour Apr 7, 2022
1a3c3a4
change active state
mutdmour Apr 7, 2022
62a4a28
fix page size
mutdmour Apr 7, 2022
ccd2e2a
all items
mutdmour Apr 7, 2022
3712bc4
update expression background
mutdmour Apr 7, 2022
17054c8
update naming
mutdmour Apr 7, 2022
dc4e718
align pencil
mutdmour Apr 7, 2022
0565ea7
update modal background
mutdmour Apr 7, 2022
8cb61ba
add schedule group
mutdmour Apr 7, 2022
e08711d
update schedule nodes messages
mutdmour Apr 7, 2022
f89af67
use ellpises for last chars
mutdmour Apr 7, 2022
d31e653
fix spacing
mutdmour Apr 7, 2022
2f6132f
fix tabs issue
mutdmour Apr 7, 2022
661b836
fix too far data bug
mutdmour Apr 7, 2022
646c055
fix executions bug
mutdmour Apr 7, 2022
e583a98
fix table wrapping
mutdmour Apr 7, 2022
5551929
fix rename bug
mutdmour Apr 7, 2022
56647f9
add padding
mutdmour Apr 7, 2022
cc9acbc
handle unkown errors
mutdmour Apr 8, 2022
c705c8a
add sticky header
mutdmour Apr 8, 2022
05023a0
ignore empty input, trim node name
mutdmour Apr 8, 2022
134d500
nudge lightness of color
mutdmour Apr 8, 2022
1092425
center buttons
mutdmour Apr 8, 2022
44bf324
update pagination
mutdmour Apr 8, 2022
13ffdca
set colors of title
mutdmour Apr 8, 2022
374579d
increase table font, fix alignment
mutdmour Apr 8, 2022
5e5ab5a
fix pencil bug
mutdmour Apr 8, 2022
9687ec9
fix spacing
mutdmour Apr 8, 2022
c1a6fa2
use date now
mutdmour Apr 11, 2022
0ec553e
Merge branch 'master' of github.com:n8n-io/n8n into N8N-3194-output-p…
mutdmour Apr 11, 2022
366ddfe
address pagination issues
mutdmour Apr 11, 2022
d16d913
address merge conflict
mutdmour Apr 11, 2022
3ab47ee
resolve conflicts
mutdmour Apr 11, 2022
2bb1847
delete unused keys
mutdmour Apr 11, 2022
55877d3
update keys sort
mutdmour Apr 11, 2022
960354f
fix prepend
mutdmour Apr 11, 2022
ae42781
fix radio button position
mutdmour Apr 11, 2022
6acfdbd
Revert "fix radio button position"
mutdmour Apr 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions packages/design-system/src/components/N8nIcon/Icon.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<component
:is="$options.components.N8nText"
:size="props.size"
:color="props.color"
:compact="true"
>
<component
Expand Down Expand Up @@ -36,6 +37,8 @@ export default {
type: Boolean,
default: false,
},
color: {
},
},
};
</script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@ const Template = (args, { argTypes }) => ({
N8nInfoTip,
},
template:
'<n8n-info-tip>Need help doing something? <a href="/docs" target="_blank">Open docs</a></n8n-info-tip>',
'<n8n-info-tip v-bind="$props">Need help doing something? <a href="/docs" target="_blank">Open docs</a></n8n-info-tip>',
});

export const InputLabel = Template.bind({});
export const Note = Template.bind({});

export const Tooltip = Template.bind({});
Tooltip.args = {
type: 'tooltip',
tooltipPlacement: 'right',
};
63 changes: 58 additions & 5 deletions packages/design-system/src/components/N8nInfoTip/InfoTip.vue
Original file line number Diff line number Diff line change
@@ -1,23 +1,48 @@
<template functional>
<div :class="$style.infotip">
<component :is="$options.components.N8nIcon" icon="info-circle" /> <span><slot></slot></span>
<template>
<div :class="[$style[theme], $style[type]]">
<n8n-tooltip :placement="tooltipPlacement" :popper-class="$style.tooltipPopper" :disabled="type !== 'tooltip'">
<span>
<n8n-icon :icon="theme.startsWith('info') ? 'info-circle': 'exclamation-triangle'" />
<span v-if="type === 'note'"><slot></slot></span>
</span>
<span v-if="type === 'tooltip'" slot="content"><slot></slot></span>
</n8n-tooltip>
</div>
</template>

<script lang="ts">
import N8nIcon from '../N8nIcon';
import N8nTooltip from '../N8nTooltip';

export default {
name: 'n8n-info-tip',
components: {
N8nIcon,
N8nTooltip,
},
props: {
theme: {
type: String,
default: 'info',
validator: (value: string): boolean =>
['info', 'info-light', 'warning', 'danger'].includes(value),
},
type: {
type: String,
default: 'note',
validator: (value: string): boolean =>
['note', 'tooltip'].includes(value),
},
tooltipPlacement: {
type: String,
default: 'top',
},
},
};
</script>

<style lang="scss" module>
.infotip {
color: var(--color-text-light);
.base {
font-size: var(--font-size-2xs);
font-weight: var(--font-weight-bold);
line-height: var(--font-size-s);
Expand All @@ -27,7 +52,35 @@ export default {

svg {
font-size: var(--font-size-s);
}
}

.note {
composes: base;

svg {
margin-right: var(--spacing-4xs);
}
}

.tooltip {
composes: base;
display: inline-block;
}

.info-light {
color: var(--color-foreground-dark);
}

.info {
color: var(--color-text-light);
}

.warning {
color: var(--color-warning);
}

.danger {
color: var(--color-danger);
}
</style>
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<template>
<label role="radio" tabindex="-1" :class="$style.container" aria-checked="true">
<input type="radio" tabindex="-1" autocomplete="off" :class="$style.input" :value="value">
<div :class="{[$style.button]: true, [$style.active]: active}" @click="$emit('click')">{{ label }}</div>
</label>
</template>

<script lang="ts">
export default {
name: 'n8n-radio-button',
props: {
label: {
type: String,
required: true,
},
value: {
type: String,
required: true,
},
active: {
type: Boolean,
default: false,
},
},
};
</script>

<style lang="scss" module>
.container {
display: inline-block;
outline: 0;
position: relative;

&:hover {
.button:not(.active) {
color: var(--color-primary);
}
}
}

.input {
opacity: 0;
outline: 0;
z-index: -1;
position: absolute;
}

.button {
border-radius: 0;
padding: 0 var(--spacing-s);
display: flex;
align-items: center;
height: 26px;
font-size: var(--font-size-2xs);
border-radius: var(--border-radius-base);
font-weight: var(--font-weight-bold);
color: var(--color-text-base);
cursor: pointer;
transition: background-color 0.2s ease;
}

.active {
background-color: var(--color-foreground-xlight);
color: var(--color-text-dark);
}
</style>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import N8nRadioButtons from './RadioButtons.vue';

import { action } from '@storybook/addon-actions';

export default {
title: 'Atoms/RadioButtons',
component: N8nRadioButtons,
argTypes: {
},
parameters: {
backgrounds: { default: '--color-background-xlight' },
},
};

const methods = {
onInput: action('input'),
};

const Template = (args, { argTypes }) => ({
props: Object.keys(argTypes),
components: {
N8nRadioButtons,
},
template:
`<n8n-radio-buttons v-model="val" v-bind="$props" @input="onInput">
</n8n-radio-buttons>`,
methods,
data() {
return {
val: '',
};
},
});

export const Example = Template.bind({});
Example.args = {
options: [
{
label: 'Test',
value: 'test',
},
{
label: 'World',
value: 'world',
},
{
label: 'Hello',
value: 'hello',
},
],
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<template>
<div role="radiogroup" :class="$style.radioGroup">
<RadioButton
v-for="option in options"
:key="option.value"
v-bind="option"
:active="value === option.value"
@click="(e) => onClick(option.value, e)"
/>
</div>
</template>

<script lang="ts">
import RadioButton from './RadioButton';

export default {
name: 'n8n-radio-buttons',
props: {
value: {
type: String,
},
options: {
},
},
components: {
RadioButton,
},
methods: {
onClick(value) {
this.$emit('input', value);
},
},
};
</script>

<style lang="scss" module>

.radioGroup {
display: inline-flex;
line-height: 1;
vertical-align: middle;
font-size: 0;
background-color: var(--color-foreground-base);
padding: var(--spacing-5xs);
border-radius: var(--border-radius-base);
}

</style>

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import N8nRadioButtons from './RadioButtons.vue';

export default N8nRadioButtons;
71 changes: 51 additions & 20 deletions packages/design-system/src/components/N8nSelect/Select.vue
Original file line number Diff line number Diff line change
@@ -1,24 +1,29 @@
<template functional>
<component
:is="$options.components.ElSelect"
v-bind="props"
:value="props.value"
:size="$options.methods.getSize(props.size)"
:class="$style[$options.methods.getClass(props)]"
:popper-class="$options.methods.getPopperClass(props, $style)"
v-on="listeners"
:ref="data.ref"
>
<template v-slot:prefix>
<slot name="prefix" />
</template>
<template v-slot:suffix>
<slot name="suffix" />
</template>
<template v-slot:default>
<slot></slot>
</template>
</component>
<div :class="{[$style.container]: true, [$style.withPrepend]: !!$slots.prepend}">
<div v-if="$slots.prepend" :class="$style.prepend">
<slot name="prepend" />
</div>
<component
:is="$options.components.ElSelect"
v-bind="props"
:value="props.value"
:size="$options.methods.getSize(props.size)"
:class="$style[$options.methods.getClass(props)]"
:popper-class="$options.methods.getPopperClass(props, $style)"
v-on="listeners"
:ref="data.ref"
>
<template v-slot:prefix>
<slot name="prefix" />
</template>
<template v-slot:suffix>
<slot name="suffix" />
</template>
<template v-slot:default>
<slot></slot>
</template>
</component>
</div>
</template>

<script lang="ts">
Expand Down Expand Up @@ -121,4 +126,30 @@ export default {
overflow-x: hidden;
}
}

.container {
display: inline-flex;
width: 100%;
}

.withPrepend {
input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}

.prepend {
font-size: var(--font-size-2xs);
border: var(--border-base);
border-right: none;
display: flex;
align-items: center;
padding: 0 var(--spacing-3xs);
background-color: var(--color-background-light);
border-bottom-left-radius: var(--input-border-radius, var(--border-radius-base));
border-top-left-radius: var(--input-border-radius, var(--border-radius-base));
color: var(--color-text-base);
white-space: nowrap;
}
</style>
Loading