Browse Source

autogenerated app import list for index.html

Guénaël Muller 5 years ago
parent
commit
10e6f75904

+ 6 - 0
backend/tracim_backend/models/applications.py View File

@@ -36,6 +36,12 @@ class Application(object):
36 36
         self.config = config
37 37
         self.main_route = main_route
38 38
 
39
+    # TODO - G.M - 2018-08-07 - Refactor slug coherence issue like this one.
40
+    # we probably should not have 2 kind of slug
41
+    @property
42
+    def minislug(self):
43
+        return self.slug.replace('contents/', '')
44
+
39 45
 
40 46
 # default apps
41 47
 calendar = Application(

+ 18 - 1
backend/tracim_backend/views/frontend.py View File

@@ -3,12 +3,14 @@ import os
3 3
 from pyramid.renderers import render_to_response
4 4
 from pyramid.config import Configurator
5 5
 from tracim_backend.exceptions import PageNotFound
6
+from tracim_backend.models.applications import applications
6 7
 from tracim_backend.views import BASE_API_V2
7 8
 from tracim_backend.lib.utils.request import TracimRequest
8 9
 from tracim_backend.views.controllers import Controller
9 10
 import spectra
10 11
 
11 12
 INDEX_PAGE_NAME = 'index.mak'
13
+APP_FRONTEND_PATH = 'app/{minislug}.app.js'
12 14
 
13 15
 
14 16
 class FrontendController(Controller):
@@ -29,9 +31,24 @@ class FrontendController(Controller):
29 31
         return self.index(context, request)
30 32
 
31 33
     def index(self, context, request: TracimRequest):
34
+        app_config = request.registry.settings['CFG']
35
+        # TODO - G.M - 2018-08-07 - Refactor autogen valid app list for frontend
36
+        frontend_apps = []
37
+        for app in applications:
38
+            app_frontend_path = APP_FRONTEND_PATH.replace('{minislug}',
39
+                                                          app.minislug)  # nopep8
40
+            app_path = os.path.join(self.dist_folder_path,
41
+                                    app_frontend_path)  # nopep8
42
+            if os.path.exists(app_path):
43
+                frontend_apps.append(app)
32 44
         return render_to_response(
33 45
             self._get_index_file_path(),
34
-            {'primary': spectra.html('#7d4e24')}
46
+            {
47
+                'colors': {
48
+                    'primary': spectra.html('#7d4e24'),
49
+                },
50
+                'applications': frontend_apps,
51
+            }
35 52
         )
36 53
 
37 54
     def bind(self, configurator: Configurator) -> None:

+ 4 - 3
frontend/dist/index.mak View File

@@ -16,6 +16,7 @@
16 16
 
17 17
     <style>
18 18
       <%
19
+        primary = colors['primary']
19 20
         html_class = '.primaryColorFont{state}'
20 21
         param = 'color'
21 22
         color_change_value = 15
@@ -61,9 +62,9 @@
61 62
     <script type='text/javascript' src='/asset/tracim.app.entry.js'></script>
62 63
 
63 64
     <script type='text/javascript' src='/app/workspace.app.js'></script>
64
-    <script type='text/javascript' src='/app/html-document.app.js'></script>
65
-    <script type='text/javascript' src='/app/thread.app.js'></script>
66
-    <!-- <script type='text/javascript' src='/app/file.app.js'></script> -->
65
+    % for app in applications:
66
+    <script type='text/javascript' src='/app/${app.minislug}.app.js'></script>
67
+    %endfor
67 68
     <script type='text/javascript' src='/app/admin_workspace_user.app.js'></script>
68 69
 
69 70
     <script type='text/javascript' src='/asset/bootstrap/jquery-3.2.1.js'></script>