►
Description
In this session we pair up in replacing an existing component to use gl-form-fields.
00:00:00 - Intro talking about gl-form-fields and possible usage in Achievements
00:05:45 - Start working on admin_emails_form.vue
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119789
B
So
yeah,
after
a
lot
lots
of
fun
and
games,
we
managed
to
get
GL
form
Fields
over
the
line,
and
now
we
want
to
come
and
use
it,
and
and
I've
got
quite
a
nice,
so
jail
form
Fields
was
was
born
through
when
I
created,
the
new
crn
module
and
I
was
creating
forms
and
finding
that
I
was
just
copying
and
pasting
boilerplate
template
code,
whatever
you
want
to
call
it
from
elsewhere.
B
So
now
we've
got
geoform
filled,
so
I'm
hoping
we
can
create
a
a
cruddy
form
or
crowd
forms
for
achievements,
no
SNES,
but
because
achievements
hasn't
got
a
UI.
Yet
we
we
need
something
real
basic.
That
start
with
some
I.
Don't
know
what
you
want
to
call
it.
An
entry
point
amount
points,
something
like
that.
So
it's
sort
of
almost
Unleashed
another
can
of
worms
would
have
kind
of
like
okay.
So
to
get
us
something
to.
B
You
know
we
need
something
in
Roots,
we
need
an
index
Hammer,
we
need
an
index.js,
we
need
a
bundle
we
need.
Hopefully
we
can
use
in
it
simple
app,
Maybe
yeah.
B
But
this
this
is
then
going
to
be
our
next
two-year
challenge
to
try
and
make
this
process
not
such
a
ridiculous
I,
don't
know
what
you
want
to
call
it.
You
know
I
mean
it's
just
the.
B
D
These
boys
are
played
between
rails
and
view
is
really
something
that
at
least
myself.
It
puts
me
off
when
I
am
starting
a
project.
Oh
I
am
very
lazy
to
a
star,
because
I
know
all
these
type
of
things
that
I
I
would
like
to
to
dump
directly
interview.
But
I
I
had
to
do
this
between
brothers
and
you.
B
It's
a
pain
all
right,
it's
fine,
but
anyway
now
I've
had
a
moan
about
that.
That's
not
what
I
wanted
to
do.
B
I
guess,
I,
just
cracked
on
quickly
hopefully
and
put
the
the
basic
bits
we
need
in
place.
Yeah.
B
Able
to
start
building
a
new
view
component.
If
we
find
it's
going
to
be
a
bit
a
bit
more
long-winded
than
I
expected
it
to.
We
can
either
cheat
and
we
can
just
mount
a
few
components
somewhere
where
it
completely
doesn't
belong,
or
you
can
or
maybe
divert
on
something
else
that
you
want
to
work
on
for
a
wee
bit
while
I
get
this
in
place,
but
I'm
hoping
I'm
hoping
you
know,
we've
got
our
resource.
We've
got
a
controller.
B
Get
I
was
going
to
kind
of
cheat
a
little
bit
but
you're
right
that
that's
gonna
need
to
be
quite
quite
soon.
E
B
A
B
Okay,
in
which
case
I
believe
one
of
you
have
another
a
good
candidate
for
a
replacement
rather
than
a
brand
new
and
I
will
say
this
I'm
still
happy
to
have
an
attempt
at
driving,
yeah.
A
Well,
let's
see
it,
let's
see
if
we
can
replace
if,
if
you're
cool
with
it,
let's
see
I
think
Peter
had
somewhere
in
the
code
that
that
was
pretty
simple.
We
could
use
sort
of
try
out
geoform
Fields,
let's
see
if
we
can
replace
existing
form
usage
with
geoform
fields
and
then
I,
don't
think
that'll
take
a
long
time
and
then
we
can
go
back
to
achievements.
Does.
C
E
Yeah,
that
was
that
was
the
one
I'm
saying
I
was
saying:
that's
pretty
simple,
and
it's
using
like
a
an
older,
like
validation
directive,
that
we
have
on
a
few
forms,
so
it'd
be
interesting
to
see
yeah
how
it,
how
it
converts
over
to
GL
forms
and.
C
B
E
B
Had
a
new
release,
gitlab
has
bumped
its
version
of
gitlab
UI
Etc.
Let.
A
Me
check
that
out,
but
you
I,
don't
I
think
you
are
on
the
branch
you
were
previously
working
on,
so
you
might
need
to.
A
B
A
GDK
update
more
than
I,
don't
know
the
hour
or
a
couple
of
hours
yeah,
so
we
should
be
good,
okay,
interesting.
What's
this
match
Nick.
A
A
Of
course,
all
right
and
then
I
think
if
he
keeps
scrolling
down
yeah
there's
all
the
props
there.
Oh,
is
that
the
code,
oh
wow,
that's
the
whole
code
for
the
story.
I
thought
we
lost
I
thought
the
code
was
like
not
working
today,
yeah.
B
Hey
say:
you're
hot,
so
yeah,
I'm
hoping
this
will
give
me
a
bit
of
a
cheat
to
be
able
to
kind
of
get
up
and
running
cool.
E
E
E
Is
just
HTML
attribute
that
says:
don't
run
the
HTML5
validation.
A
Okay,
that's
I,
see
that's
interesting,
so
we'll
want
to
give
it
an
ID.
We
need
to
do
that.
Let's,
let's
that's
a
easy
easiest
small
stuff
to
do.
B
A
No!
No,
because
that's
a
that's.
B
B
B
Right
right,
so
then
we
probably
want
to
start
building
this
kind
of
it's
an
object
on
a
ray.
A
So
those
are
all
just
fields
for
yeah,
so
we'll
need
to
create
a
Fields
thing.
Let's
move
over,
let's
go
back
to
the
template
and
let's
move
over
the
top
part
of
the
form
Fields
first.
D
B
A
B
It
hasn't
hasn't
done
the
best
at
highlighting,
but
you
know
and
be
close
at
some
point:
cool.
D
B
A
E
I'm
actually
interested
to
see
if
we
actually
do
need
that
submit.prevent
I
think.
Could
we
remove
it
until
we
actually
test
the
form
just
to
see,
because
if
I
remember
correctly,
the
form
Fields
might
take
care
of
that
for
us
anyways.
A
Maybe
you're
right,
you
might
be
I,
think
you
might
be
right.
That's
really
interesting.
I
hadn't
thought
of
that.
It's.
A
C
A
A
A
E
E
Is
part
of
the
like
setup
for
the
older
validation
directive?
We
could
probably
just
delete
that
just
so.
It's
not
like
in
our
way,
but
yeah.
That's
a
good
starting
point.
Actually.
B
A
B
A
A
B
We've
got
lots
of
builds
in
this
one.
Now,
thanks
Paul
and.
C
B
It's
instant
mashed
up,
so
just
just
like
that
or
okay,
so
on
the
label,
so
the
validation
is
Handy.
We've
got
a
message.
B
F
A
Don't
remember
where
I
put
it,
though
let
me
go
yeah.
We
totally
did.
A
F
B
D
A
E
E
E
F
Yeah
yeah,
but
this
is
a
is
this
a
sorry
I
think
I
zoned
out
a
little
bit.
Is
this?
The
like
a
rails
form
that
we're.
C
E
Well,
it's
view,
but
obviously
it's
the
obviously
view,
but
it
submits
with
just
like
a
regular
HTTP
post
request
like
reloads
the
page.
It's
not
Ajax
yeah
yeah.
A
A
Cool,
let's
update
the
validation
message,
we'll
we'll
do
the
recipient
seems
like
the
harder
one
here,
but
let's,
let's
figure
that.
A
So
validators
is
an
array
and
we'll
put
form
validators
dot
required.
C
B
B
Turn
that
internally
sentencing
with
what's
it
off,
because
I
can't
remember
the
last
time
I
accepted.
A
B
D
A
F
A
A
B
Need
to
do
something
I
kind
of
want
to
try
it
already.
E
Yeah,
it's
actually
like
the
hardest
form
to
find
in
gitlab.
So
if
you
go
to
admin,
oh
oh.
A
A
F
As
far
as
I'm
aware,
the
package.json
only
resolves
like
one
main
entry
point
and
when
we
compile
all
of
gitlab
UI,
it
goes
into
the
disk,
folder
so
I'm
sure
like
importing
gitlab
UI
maps
to
dist
index
yeah.
But
if
we
want
to
import
from
anything
else
in
that
folder,
we
have
to
be
specific.
Oh
nice.
B
A
E
Oh
yeah
you're
only
allowed
I
forgot
about
that
part.
You're
only
allowed
to
submit
the
form
like
once
every
10
minutes
or
something
but
I,
there's
no
way
to
like
just
delete
the
rate
limiting
quickly
I
can
find
it.
You
can
keep
going.
Okay.
B
A
No
I
would
I
would
put
it.
It
can
well
I
see
what
you're
saying
yes.
Yes,
it
needs
to
go
outside.
Yes,
yes,
yes,
yes,
yes,
no,
our
ux
guide
is
actually
not
to
disable
a
button.
A
A
C
A
It
just
comes
from
rails,
okay,
oh,
come.
B
B
A
B
B
B
A
A
I'm,
looking
at
this
yeah
key
is
used
as
both
the
ID
and
name,
but
it
looks
like
we
don't
need
the
ID.
It
says:
that's
just
used
for
the
label
matching
up
the
validation
stuff.
We're
already
we're
we're
handling
state
is
what
we're
handling
yeah.
All
that's
great
I,
think
I
think
we
have
that
so
I
think
we
can
get
rid
of
that
first
form
group.
A
B
A
A
Yes,
thank
you
Andrew.
We
need
to
input
the
input
and
blur
the
blurb,
but
those
are
those
are
at
inputs
and
app
blurs
yeah
and
and
Peter
had
an
interesting
idea
of
like
what.
If
we
grouped
the
like
of
States,
we
need
to
bind
and
events
we
need
to
bind
into
rather
than
having
it
all
spread.
In
one
level
we
could
have
like
events
and
States
so
I
could
just
do.
V
bind
state,
Beyond
events
and
that
might
be
kind
of
cool,
sounds.
B
A
B
B
A
Right
I'm
now
just
realizing!
Oh
no,
do
we
not
have
input
adders
that
go
through
here
and
I'm
I'm
thinking,
maybe
not
because
we're
in
a
slot.
So
maybe
that's
why.
A
B
E
A
A
Yeah,
that's
that's!
It.
B
D
C
C
A
F
A
I
called
it
validation,
I'm
a
little
I'm,
a
little
ashamed
by
calling
it
validation
foreign.
Why
did
I
call
it
that?
What
is
this
yeah?
It's
validation,
has
a
sorry
it'd
be
validation.state
I'm,
passing
this
down
as
yeah
the
field.
Validation
props
has
invalid
feedback,
which
is
the.
B
A
A
If
you
go
to
fields
to
render,
if
you
scroll
down
just
a
little
bit,.
D
A
You
see
the
scope
slot
adders
yeah,
that's
that's
the
one
gotcha.
B
B
Beautiful
now,
this
I
think
was
a
special
build
as
well
right,
yes
yeah!
So
we
reasonably
happy
with
this
one
now
I'm.
B
We
have
this
crazy
error
message
for
some
reason:
why
is
that
in
the
middle
of
four?
What
what
does
this
error?
What's
it
used
for.
D
A
One
thing
we
won't
be
able
to
do
right
now:
is
you
see
how
the
alert
is
before
the
form
group?
That's
not
something
we're
going
to
be
able
to
do,
but
we
could
do
it
inside
the
form
group
and
see
how
that
works
and
try
to
hit
trigger
that
failure,
but
we
should
be
able
to
copy
this
somewhat,
as
is
so,
we
need
another
scope,
slot.
B
I
mean,
but
then
do
we
have
to
reinvent
the
well:
no,
no
okay!
So
we're
going
to
put
it
inside
this.
Yet
okay,
I
think
I've
got
you
in
there,
so
we're
gonna
do
another.
D
E
B
C
C
A
A
A
A
E
E
Yeah
I,
don't
think
GL
form
input
works
with
hidden.
You
just
have
to
do
the
HTML5
input
and
then
do
hidden.
B
C
B
C
B
A
And
we
might
need
to
pass
the
ID
to
G
the
collapsible
list
box.
D
A
A
Input
listening
back,
though,
we
need
to
pass
our
input,
so
we
will
need
the
input
and
blur
probably
still.
A
It
might
not
blur,
but
we
do
need
the
input.
One.
E
I
think
we
have
a
list
box
in
the
documentation,
so
we
can
see
what
we're
doing.
There
can't
remember.
C
A
C
B
A
B
C
A
A
B
Hopefully
this
video
will
serve
a
really
good
purpose,
but
you
know
maybe
we
some
some
eyes
in
a
little
bit
to
try
and
understand
some
of
the
wires
and
if
there's
any
way,
I
think
it's
unavoidable
when
we're
using
the
slots
that
you
just
have
to.
But
then
you
were
saying
that
you
had
an
idea
of
of
kind
of
lumping
these
together
in
a
sort
of
event,
handlers
and
something
else.
A
B
Know
I
didn't
know
that
this
component
exists.
It's
that
we
we
had
an
example.
I've
been
looking
for
this
for
a
while,
although
am
I
looking
for
Maltese,
no
I,
think
I'm
just
looking
to
drop
down,
but
one
that
this
this
it's
all
projects
or
groups,
does
it.
E
A
Not
I
mean,
if
you
just
submit
it
like
it
shouldn't,
let
us
submit
it
is
the
thing.
So
that's
the
the
yeah
nothing's
happening.
That's
the
the
pajamas
submit
prevent
thing
that
Peter
said
we
didn't
need
it's
already
doing
automatically,
which
is
great
right
yep.
A
C
A
C
A
E
A
A
And
that's
all
of
our
computers,
I
think
this
is
going
to.
Let
us
remove
a
number,
a
good
amount
of
code
which
I'm
kind
of
excited
about.
It's,
not
that
difficult
of
an
abstraction
for
a
lot
of
code,
removal
that
I'm
really
interested
to
see
how
it
affects
our
tests
too,
because
maybe
it's
also
a
lot
of
test
removal.
F
B
It
sucks
it's
what
all
right!
Oh.
E
E
A
Do
so
should
we
just
call
is
form
is
form
a
oh
wait.
I
think.
A
A
F
A
F
A
So
so
should.
B
E
E
A
ref
to
the
GL
form
yeah,
let's
call
it
form
s
and
then
in
the
we'll
have
to
bring
back
that
submit
Handler.
B
And
we
so
is:
is
it
right.
B
A
C
A
Here's
here's
an
idea
of
how
we
can
handle
it
well
now,
I'm
still
thinking.
E
A
E
A
Yeah,
because
it's
because
it's
owned
by
those
oh
but
it
works,
it
works
right.
That's
it
working
right,
yeah,
so
dot
submit
works,
that's
pretty
good,
so
my
other
thought
was.
If
we
go
back
to
the.
If
we
go
back
to
the
code,
the
component
code,
the
actual
the
like
the
form
Fields.
A
C
A
F
A
B
A
Yeah,
that
would
be
cool,
yeah
I,
don't
know.
If
we're
there
well
I'm
glad
the
submit
function
works
like
that's,
not
the
worst
yeah.
B
I
mean
we've
got
a
subjects
we've
got
up
on
here.
We've
got
our
recipients,
it's
are
we
interested
in
yeah.
A
E
A
Let's
start
at
the
top,
maybe
and
just
see,
what's
what's
insane
I
do
because
feed
I
know
feedback
math.
We.
E
B
Nice
and
we're
using
the
button
we're
using
the
list
box
we're
using
the
little
and
yes
we're
using
from
us.
D
A
B
What
about
what
where's
the
D
bounce
coming
to
things?
That's.
B
A
Those
fields
we're
not
using
anymore,
oh
but
wait.
Did
we
get
the
messages
passing
through
correctly.
We.
A
B
Sorry
just
so,
but
we
need
to
do
something
with
these
right
or
or
not.
Yes,.
F
B
B
Okay,
yeah,
okay,.
B
Error
we
totally
names.
Yes,
that's
being
used.
D
B
C
D
And
property
is
that
related
with
the
with
the
validation,
the
previous
validation
coming
up.
B
I
think
we'll
check
where
it
sees
but
I
think
it's
if
something
yeah.
So
if
we
catch
an
error
when
we're
fictional
groups
and
projects
that
is.
D
A
I
think
that
has
like
form
Fields
would
look
Slicker
here.
If
the
recipients
was
bit
was
like
in
its
own
component,
that
would
be
cool.
We
still
need
to
see
how
the
alert
looks
out
inside
the
form
group,
because.
A
F
It's
the
most
ridiculous
way
to
to
shorten
yeah
anything.
What's.
A
B
All
right,
yes,
we
still
need
this.
We
still
need
this.
D
A
Peter
shared
on
something
you'll
need
to
run
on
the
rails,
console
to
get
that
10
minute.
Blocker
unblocked.
A
D
F
F
I
think,
if
you
go
in
the
in
the
network
Dev
tools,
we
should
like
disable
internet
and
see
what
this
alert
looks
like
yeah,.
B
C
F
F
A
A
C
A
C
A
Yeah
I
think
it
kind
of
makes
sense
inside
the
label.
I
think
the
most
disappointing
thing
with
the
ux
here
is.
Is
the
box
covers
the
error
message.
F
A
D
D
F
A
D
B
A
So
here's
a
crazy
idea
and
I
don't
know
we're
at
times
so
after
this
Lee,
if
you
can
just
push
up
an
MR
for
this
and
then
maybe
next
time
we
compare
on
testing
for
it
or
if
someone
wants
to
take
off,
try
to
try
to
figure
out
a
nice
way
to
test
this,
but
from
the
MR
I
think
we
can
also
create
some
notes
to
solve
Upstream,
which
would
be
cool
the
here's
crazy
idea,
though
in
fields.
A
B
A
What
what
do
you
all
think
if
we
had
a
component
property
yeah.
A
A
I'm,
almost
wanting
to
like
pass
render
function
like
that
would
be
so
interesting
if
we
did
it
here
instead
of
in
the
time,
but
I
know
that
that
that's
me
thinking
in
react
way
and
we're
not
there.
So
that's
just
something
to
think
about,
but
maybe
we
could
talk
about
in
the
Mr
of
ways.
We
could
make
the
template
a
little
simpler.
F
A
F
C
F
A
Yeah
yeah,
it
is
I,
know
what
you
mean
all
right:
cool
thanks
everybody.
This
was
great
progress
and
good
feedback.
Oh.