BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
cf644fc1
Commit
cf644fc1
authored
Feb 01, 2018
by
Clement Ho
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'add-confirmation-input-for-modals' into 'master'
Add confirmation input component See merge request gitlab-org/gitlab-ce!16816
parents
a24e5827
f072af2e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
130 additions
and
0 deletions
+130
-0
confirmation_input.vue
.../javascripts/vue_shared/components/confirmation_input.vue
+62
-0
add-confirmation-input-for-modals.yml
changelogs/unreleased/add-confirmation-input-for-modals.yml
+5
-0
confirmation_input_spec.js
...ascripts/vue_shared/components/confirmation_input_spec.js
+63
-0
No files found.
app/assets/javascripts/vue_shared/components/confirmation_input.vue
0 → 100644
View file @
cf644fc1
<
script
>
import
_
from
'underscore'
;
import
{
__
,
sprintf
}
from
'~/locale'
;
export
default
{
props
:
{
inputId
:
{
type
:
String
,
required
:
true
,
},
confirmationKey
:
{
type
:
String
,
required
:
true
,
},
confirmationValue
:
{
type
:
String
,
required
:
true
,
},
shouldEscapeConfirmationValue
:
{
type
:
Boolean
,
required
:
false
,
default
:
true
,
},
},
computed
:
{
inputLabel
()
{
let
value
=
this
.
confirmationValue
;
if
(
this
.
shouldEscapeConfirmationValue
)
{
value
=
_
.
escape
(
value
);
}
return
sprintf
(
__
(
'Type %{value} to confirm:'
),
{
value
:
`<code>
${
value
}
</code>`
},
false
,
);
},
},
methods
:
{
hasCorrectValue
()
{
return
this
.
$refs
.
enteredValue
.
value
===
this
.
confirmationValue
;
},
},
};
</
script
>
<
template
>
<div>
<label
v-html=
"inputLabel"
:for=
"inputId"
>
</label>
<input
:id=
"inputId"
:name=
"confirmationKey"
type=
"text"
ref=
"enteredValue"
class=
"form-control"
/>
</div>
</
template
>
changelogs/unreleased/add-confirmation-input-for-modals.yml
0 → 100644
View file @
cf644fc1
---
title
:
Add confirmation-input component
merge_request
:
16816
author
:
type
:
other
spec/javascripts/vue_shared/components/confirmation_input_spec.js
0 → 100644
View file @
cf644fc1
import
Vue
from
'vue'
;
import
confirmationInput
from
'~/vue_shared/components/confirmation_input.vue'
;
import
mountComponent
from
'../../helpers/vue_mount_component_helper'
;
describe
(
'Confirmation input component'
,
()
=>
{
const
Component
=
Vue
.
extend
(
confirmationInput
);
const
props
=
{
inputId
:
'dummy-id'
,
confirmationKey
:
'confirmation-key'
,
confirmationValue
:
'confirmation-value'
,
};
let
vm
;
afterEach
(()
=>
{
vm
.
$destroy
();
});
describe
(
'props'
,
()
=>
{
beforeEach
(()
=>
{
vm
=
mountComponent
(
Component
,
props
);
});
it
(
'sets id of the input field to inputId'
,
()
=>
{
expect
(
vm
.
$refs
.
enteredValue
.
id
).
toBe
(
props
.
inputId
);
});
it
(
'sets name of the input field to confirmationKey'
,
()
=>
{
expect
(
vm
.
$refs
.
enteredValue
.
name
).
toBe
(
props
.
confirmationKey
);
});
});
describe
(
'computed'
,
()
=>
{
describe
(
'inputLabel'
,
()
=>
{
it
(
'escapes confirmationValue by default'
,
()
=>
{
vm
=
mountComponent
(
Component
,
{
...
props
,
confirmationValue
:
'n<e></e>ds escap"ng'
});
expect
(
vm
.
inputLabel
).
toBe
(
'Type <code>n<e></e>ds escap"ng</code> to confirm:'
);
});
it
(
'does not escape confirmationValue if escapeValue is false'
,
()
=>
{
vm
=
mountComponent
(
Component
,
{
...
props
,
confirmationValue
:
'n<e></e>ds escap"ng'
,
shouldEscapeConfirmationValue
:
false
});
expect
(
vm
.
inputLabel
).
toBe
(
'Type <code>n<e></e>ds escap"ng</code> to confirm:'
);
});
});
});
describe
(
'methods'
,
()
=>
{
describe
(
'hasCorrectValue'
,
()
=>
{
beforeEach
(()
=>
{
vm
=
mountComponent
(
Component
,
props
);
});
it
(
'returns false if entered value is incorrect'
,
()
=>
{
vm
.
$refs
.
enteredValue
.
value
=
'incorrect'
;
expect
(
vm
.
hasCorrectValue
()).
toBe
(
false
);
});
it
(
'returns true if entered value is correct'
,
()
=>
{
vm
.
$refs
.
enteredValue
.
value
=
props
.
confirmationValue
;
expect
(
vm
.
hasCorrectValue
()).
toBe
(
true
);
});
});
});
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment