Create a shared color picker component
What does this MR do?
In anticipation of a new form being created to handle the creating and updating of compliance framework labels, it became apparent that we were going to need to create a color picker component. This component is basically identical to the existing label form but in Vue and using GitLab UI components.
It was decided that first we would make a shared component within GitLab and solve any potential integration bugs during the compliance framework labels form development. Once that is ironed out, there are issues to make it a GitLab UI component instead and also update the label form to use the same component.
This component is not currently being used anywhere. Its first usage will be in #287827 (closed).
Screenshots
mode | mobile | desktop | invalid | valid |
---|---|---|---|---|
light | ||||
dark |
Video
Screen_Recording_2020-12-04_at_12.42.42
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry - [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
- [-] Separation of EE specific content
Availability and Testing
To test this feature locally, you will need to manually add it to an existing Vue app that you have access too. For instance, to add it to the compliance dashboard, you can use the following patch:
Index: ee/app/assets/javascripts/compliance_dashboard/components/dashboard.vue
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/ee/app/assets/javascripts/compliance_dashboard/components/dashboard.vue b/ee/app/assets/javascripts/compliance_dashboard/components/dashboard.vue
--- a/ee/app/assets/javascripts/compliance_dashboard/components/dashboard.vue (revision 683450cb492dc801ae512172a63459785c4a922f)
+++ b/ee/app/assets/javascripts/compliance_dashboard/components/dashboard.vue (date 1606823632842)
@@ -6,6 +6,7 @@
import EmptyState from './empty_state.vue';
import MergeCommitsExportButton from './merge_requests/merge_commits_export_button.vue';
import { COMPLIANCE_TAB_COOKIE_KEY } from '../constants';
+import ColorPicker from '~/vue_shared/components/color_picker/color_picker.vue';
export default {
name: 'ComplianceDashboard',
@@ -15,6 +16,7 @@
GlTab,
GlTabs,
MergeCommitsExportButton,
+ ColorPicker,
},
props: {
emptyStateSvgPath: {
@@ -68,6 +70,7 @@
/>
</div>
<p>{{ $options.strings.subheading }}</p>
+ <color-picker :label="__('Background color')" set-color="#FF0000" />
</header>
<gl-tabs v-if="showTabs()">
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers - [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team
Related to #287826 (closed)