Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2018-11-07 08:06:40 +0300
committerLuke Bennett <lbennett@gitlab.com>2018-11-21 18:25:52 +0300
commit874544507cde6c079fdbc29132c1b2e01a633d73 (patch)
tree18cd891e319bdd92fc87acd82b22fedef7a3029b /app/assets/javascripts/persistent_user_callout.js
parent7d1bc0bee8abe4bb029f96b74fd7de492219a49c (diff)
Promote the GitLab.com Gold trial on a users default dashboard
Show a dismissable callout on a users dashboard for a free trial of the GitLab.com Gold plan. Hide the callout from users who have dismissed the callout, are already on a trial or are already on the gold plan
Diffstat (limited to 'app/assets/javascripts/persistent_user_callout.js')
-rw-r--r--app/assets/javascripts/persistent_user_callout.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/assets/javascripts/persistent_user_callout.js b/app/assets/javascripts/persistent_user_callout.js
new file mode 100644
index 00000000000..1e34e74a152
--- /dev/null
+++ b/app/assets/javascripts/persistent_user_callout.js
@@ -0,0 +1,34 @@
+import axios from './lib/utils/axios_utils';
+import { __ } from './locale';
+import Flash from './flash';
+
+export default class PersistentUserCallout {
+ constructor(container) {
+ const { dismissEndpoint, featureId } = container.dataset;
+ this.container = container;
+ this.dismissEndpoint = dismissEndpoint;
+ this.featureId = featureId;
+
+ this.init();
+ }
+
+ init() {
+ const closeButton = this.container.querySelector('.js-close');
+ closeButton.addEventListener('click', event => this.dismiss(event));
+ }
+
+ dismiss(event) {
+ event.preventDefault();
+
+ axios
+ .post(this.dismissEndpoint, {
+ feature_name: this.featureId,
+ })
+ .then(() => {
+ this.container.remove();
+ })
+ .catch(() => {
+ Flash(__('An error occurred while dismissing the alert. Refresh the page and try again.'));
+ });
+ }
+}