From 9719f9c2c2e6d60d0fc5d4d9a06d1dd63900cafc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr>
Date: Fri, 3 Jun 2022 21:36:34 +0200
Subject: [PATCH] Add tinymce dependancy

---
 client/angular.json                           |  3 +-
 client/package.json                           |  2 ++
 .../containers/webpages-list.component.html   |  4 ++-
 .../containers/webpages-list.component.ts     |  6 ++++
 .../instance/webpages/webpages.module.ts      |  9 ++++--
 client/yarn.lock                              | 32 ++++++++-----------
 6 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/client/angular.json b/client/angular.json
index 3c6e0694..1df04ec6 100644
--- a/client/angular.json
+++ b/client/angular.json
@@ -28,7 +28,8 @@
             "inlineStyleLanguage": "scss",
             "assets": [
               "src/favicon.ico",
-              "src/assets"
+              "src/assets",
+              { "glob": "**/*", "input": "node_modules/tinymce", "output": "/tinymce/" }
             ],
             "styles": [
               "node_modules/@fortawesome/fontawesome-free/css/all.css",
diff --git a/client/package.json b/client/package.json
index c085d335..63a7b6b8 100644
--- a/client/package.json
+++ b/client/package.json
@@ -24,6 +24,7 @@
     "@ngrx/router-store": "13.0.2",
     "@ngrx/store": "13.0.2",
     "@ngrx/store-devtools": "13.0.2",
+    "@tinymce/tinymce-angular": "^6.0.1",
     "bootstrap": "4.6.1",
     "d3": "^5.15.1",
     "file-saver": "^2.0.5",
@@ -33,6 +34,7 @@
     "ngx-json-viewer": "^3.0.2",
     "ngx-toastr": "^14.2.1",
     "rxjs": "~7.5.0",
+    "tinymce": "^6.0.3",
     "tslib": "^2.3.0",
     "zone.js": "~0.11.4"
   },
diff --git a/client/src/app/admin/instance/webpages/containers/webpages-list.component.html b/client/src/app/admin/instance/webpages/containers/webpages-list.component.html
index de41922f..ca6f8b0a 100644
--- a/client/src/app/admin/instance/webpages/containers/webpages-list.component.html
+++ b/client/src/app/admin/instance/webpages/containers/webpages-list.component.html
@@ -22,7 +22,9 @@
             </div>
         </nav>
         <div class="col-md-10 col-sm-12">
-            <textarea type="text"  name="txtarea" style="font-family: Arial;font-size: 12pt;width:100%;height:40vw"></textarea>
+            <editor [init]="{ plugins: 'lists link image table code help wordcount' }" [(ngModel)]="dataModel">
+            </editor>
+            <button (click)="savePage()" class="btn btn-outline-primary mt-2">Save</button>
         </div>
     </div>
 </div>
diff --git a/client/src/app/admin/instance/webpages/containers/webpages-list.component.ts b/client/src/app/admin/instance/webpages/containers/webpages-list.component.ts
index 6e884361..6f5f4262 100644
--- a/client/src/app/admin/instance/webpages/containers/webpages-list.component.ts
+++ b/client/src/app/admin/instance/webpages/containers/webpages-list.component.ts
@@ -21,7 +21,13 @@ import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector
 export class WebpagesListComponent {
     public instanceName: Observable<string>;
 
+    dataModel: string;
+
     constructor(private store: Store<{ }>) {
         this.instanceName = this.store.select(instanceSelector.selectInstanceNameByRoute);
     }
+
+    savePage() {
+        console.log(this.dataModel);
+    }
 }
diff --git a/client/src/app/admin/instance/webpages/webpages.module.ts b/client/src/app/admin/instance/webpages/webpages.module.ts
index 9222e041..b503c4c3 100644
--- a/client/src/app/admin/instance/webpages/webpages.module.ts
+++ b/client/src/app/admin/instance/webpages/webpages.module.ts
@@ -9,10 +9,11 @@
 
 import { NgModule } from '@angular/core';
 
+import { EditorModule, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
+
 import { SharedModule } from 'src/app/shared/shared.module';
 import { DatasetRoutingModule, routedComponents } from './webpages-routing.module';
 import { dummiesComponents } from './components';
-
 import { AdminSharedModule } from '../../admin-shared/admin-shared.module';
 
 /**
@@ -23,11 +24,15 @@ import { AdminSharedModule } from '../../admin-shared/admin-shared.module';
     imports: [
         SharedModule,
         DatasetRoutingModule,
-        AdminSharedModule
+        AdminSharedModule,
+        EditorModule
     ],
     declarations: [
         routedComponents,
         dummiesComponents
+    ],
+    providers: [
+        { provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }
     ]
 })
 export class WebpagesModule { }
diff --git a/client/yarn.lock b/client/yarn.lock
index 4a964f04..2e3142eb 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -1928,6 +1928,14 @@
   dependencies:
     "@sinonjs/commons" "^1.7.0"
 
+"@tinymce/tinymce-angular@^6.0.1":
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/@tinymce/tinymce-angular/-/tinymce-angular-6.0.1.tgz#8573bef54be8533c29e938c8c96cb2057e08b7a6"
+  integrity sha512-USuwQwcBmvl1fN9n1FsUqM8ZOQjJLe2VleQRENU9R46ZgrB6Ic5thyUV2RPHUrNgN99QJ+4HyE465qzgv+M7Mw==
+  dependencies:
+    tinymce "^6.0.0 || ^5.5.0"
+    tslib "^2.3.0"
+
 "@tootallnate/once@1":
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -6192,11 +6200,6 @@ makeerror@1.0.x:
   dependencies:
     tmpl "1.0.x"
 
-marked@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e"
-  integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==
-
 media-typer@0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -6473,15 +6476,6 @@ ngx-json-viewer@^3.0.2:
   dependencies:
     tslib "^2.0.0"
 
-ngx-md@^12.0.5:
-  version "12.0.5"
-  resolved "https://registry.yarnpkg.com/ngx-md/-/ngx-md-12.0.5.tgz#4b48dabad7a4f8cc3e0f321fea95a066e590bcf9"
-  integrity sha512-sjCfnV665oq2MCgtNPbso9v/OKJridvtlj3ExR75q5f783QUmEWJKAnglS/bZESjjxZm+RZrWpdFsxDVwk/5xw==
-  dependencies:
-    marked "^0.7.0"
-    prismjs "^1.15.0"
-    tslib "^2.0.0"
-
 ngx-toastr@^14.2.1:
   version "14.2.1"
   resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-14.2.1.tgz#2899cc6e69af607aa89a2de807c32b46fdc035f8"
@@ -7266,11 +7260,6 @@ pretty-format@^27.5.1:
     ansi-styles "^5.0.0"
     react-is "^17.0.1"
 
-prismjs@^1.15.0:
-  version "1.28.0"
-  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6"
-  integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==
-
 process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -8201,6 +8190,11 @@ thunky@^1.0.2:
   resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
   integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
 
+"tinymce@^6.0.0 || ^5.5.0", tinymce@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-6.0.3.tgz#993db09afa473a764ad8b594cdaf744b2c7e2e74"
+  integrity sha512-4cu80kWF7nRGhviE10poZtjTkl3jNL+lycilCMfdm3KU5V7FtiQQrKbEo6GInXT05RY78Ha/NFP0gOBELcSpfg==
+
 tmp@^0.0.33:
   version "0.0.33"
   resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
-- 
GitLab