From 1861ee3f98fdf90c2806b6130c157fe4e9013c2d Mon Sep 17 00:00:00 2001
From: elhassane <elhassanegargem@gmail.com>
Date: Fri, 14 Aug 2020 17:21:14 +0200
Subject: [PATCH] onboarding on models tab

---
 app/apps/core/views.py                         |  1 +
 app/escriptorium/static/js/onboarding/exit.js  | 13 +++++++++++++
 .../static/js/onboarding/models.js             | 10 ++++++++++
 .../templates/core/document_part_edit.html     |  1 +
 .../templates/core/models_list.html            | 18 ++++++++++++++++++
 5 files changed, 43 insertions(+)
 create mode 100644 app/escriptorium/static/js/onboarding/exit.js
 create mode 100644 app/escriptorium/static/js/onboarding/models.js

diff --git a/app/apps/core/views.py b/app/apps/core/views.py
index fa854662..6abc8363 100644
--- a/app/apps/core/views.py
+++ b/app/apps/core/views.py
@@ -287,6 +287,7 @@ class ModelsList(LoginRequiredMixin, ListView):
         if self.document:
             context['document'] = self.document
             context['object'] = self.document  # legacy
+            context['onboarding'] = self.request.user.onboarding  # legacy
         return context
 
 
diff --git a/app/escriptorium/static/js/onboarding/exit.js b/app/escriptorium/static/js/onboarding/exit.js
new file mode 100644
index 00000000..5e263515
--- /dev/null
+++ b/app/escriptorium/static/js/onboarding/exit.js
@@ -0,0 +1,13 @@
+function exitonboarding() {
+  $.ajax({type: 'PUT', url:'/api/users/onboarding/',
+          contentType: "application/json; charset=utf-8",
+          data:JSON.stringify({
+            onboarding : "False",
+            })
+
+      }).done($.proxy(function(data){
+            }, this)).fail(function(data) {
+                alert(data);
+            });
+
+}
diff --git a/app/escriptorium/static/js/onboarding/models.js b/app/escriptorium/static/js/onboarding/models.js
new file mode 100644
index 00000000..8b4e1f4e
--- /dev/null
+++ b/app/escriptorium/static/js/onboarding/models.js
@@ -0,0 +1,10 @@
+var models_intro = introJs();
+models_intro.setOptions('doneLabel', 'Next page');
+models_intro.setOptions({steps: [
+{
+  element: '#models-table',
+  intro: 'Here you manage Transcription and Segmentation models related to this document.',
+  position: 'bottom'
+}
+]});
+
diff --git a/app/escriptorium/templates/core/document_part_edit.html b/app/escriptorium/templates/core/document_part_edit.html
index 99c45a1b..76800146 100644
--- a/app/escriptorium/templates/core/document_part_edit.html
+++ b/app/escriptorium/templates/core/document_part_edit.html
@@ -622,6 +622,7 @@
    const DOCUMENT_ID = '{{document.id}}';
    var PART_ID = {{part.id}};  // can be changed with next & previous pages
   const onboarding  = "{{ onboarding }}";
+  var models_url = "{% url 'document-models' document_pk=document.pk %}";
   </script>
 
   <script type="text/javascript">
diff --git a/app/escriptorium/templates/core/models_list.html b/app/escriptorium/templates/core/models_list.html
index 5e65d0cd..67e4cea1 100644
--- a/app/escriptorium/templates/core/models_list.html
+++ b/app/escriptorium/templates/core/models_list.html
@@ -73,6 +73,9 @@
 
 {% block scripts %}
 {{ block.super }}
+<script src="{% static 'vendor/introjs/intro.js' %}"></script>
+<script src="{% static 'js/onboarding/models.js' %}"></script>
+<script src="{% static 'js/onboarding/exit.js' %}"></script>
 <script type="text/javascript">
 'use strict';
 $(document).ready(function() {
@@ -83,4 +86,19 @@ $(document).ready(function() {
 });
 </script>
 <script src="{% static 'js/models.js' %}"></script>
+<script type="text/javascript">
+const onboarding  = "{{ onboarding }}";
+if (onboarding == "True") {
+
+    models_intro.start();
+    models_intro.onexit(function () {
+        exitonboarding();
+    });
+
+    models_intro.oncomplete(function () {
+        exitonboarding();
+
+    });
+}
+</script>
 {% endblock %}
-- 
GitLab