From d569d0fdc58df62b1a8cb1bfd1050dd2fe4fc2b6 Mon Sep 17 00:00:00 2001 From: Manoop Talasila Date: Wed, 7 Nov 2018 19:34:24 -0500 Subject: [PATCH] Adding tutorial for Angular upgrade Issue-ID: PORTAL-356 Change-Id: I3251916a18537d6abedcada139286ee97a4dc7ad Signed-off-by: Manoop Talasila --- docs/tutorials/portal-sdk/index.rst | 1 + docs/tutorials/portal-sdk/your-angular-app.rst | 55 ++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 docs/tutorials/portal-sdk/your-angular-app.rst diff --git a/docs/tutorials/portal-sdk/index.rst b/docs/tutorials/portal-sdk/index.rst index 4d20ffd3..d12257de 100644 --- a/docs/tutorials/portal-sdk/index.rst +++ b/docs/tutorials/portal-sdk/index.rst @@ -16,6 +16,7 @@ Building ONAP Portal SDK Web Applications creating setting-up-db your-angularjs-app + your-angular-app pulling-db-data google-charts dynamic-content diff --git a/docs/tutorials/portal-sdk/your-angular-app.rst b/docs/tutorials/portal-sdk/your-angular-app.rst new file mode 100644 index 00000000..cc967121 --- /dev/null +++ b/docs/tutorials/portal-sdk/your-angular-app.rst @@ -0,0 +1,55 @@ +Your Angular app +========================= +Now that you have the existing anuglarJS application working source code, it's time to migrate to the angular latest version. +The portal SDK application kick stated the migration process from angularJS to angular (v6) using the method angular ngUpgrade. + +SDK angular application +----------------------- +To start migration, locate the current SDK angular application in :code:`sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp`. + +Setup Steps +----------- +1. Install Node.js and angularCLI. Refer https://angular.io/guide/quickstart +2. npm install in the directory `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp` +3. ng serve should bring you the welcome.html page in your local machine + +firstpage.html +-------------- +1. template: the existing welcome.html in `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models` is the landing page which will be migrated first. +The content of this file will be copied to angular landling page (index.html) in `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src`. But in SDK the default page name index.html renamed to welcome.html, refer the file angular.json in ngapp. +2. style: the existing css content will be copied to the styles.css in `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src` + +Boot the angularJS from angular application +--------------------------------------------------- +Each of the menu module (ex: admin, report) can separate angularJS application, so scan the entire *.html files in angularJS source for "ng-app" directive and remove them since the angularJS will be booted from angular application +Refer the https://angular.io/guide/ajs-quick-reference to bootstrap steps. ex: SDK ngapp `this.upgrade.bootstrap(document.body, ['abs']);` in app.component.ts + +Controller +------------- +The controller controller.js will be migrated to Type Script. When you create a angular component, by default the controller.ts will be created. So need to copy the content of existing controller.js function to controller.ts +Refer the usage.component.ts `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/components/usage` + +Data Service +------------ +The existing data service data-service.js will be migrated to Type Script. When you create a angular service, the data-service.ts will be created. +Refer the app-http-client.service.ts `sdk/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/services` + + +Template +------------- +All the HTML file should be scanned and replace with angular directives. ex: "ng-if" in angular "*ngIf" +Refer the https://angular.io/guide/ajs-quick-reference to migrate angularJs to angular directives in the static html should be scanned for + + +Migrationg existing page to the SDK navigatio +--------------------------------------------- +TBD + + +Adding your new page to the SDK navigation +------------------------------------------ +TBD + +Rollback to angularJs incase if there is blocker +------------------------------------------------ +TBD -- 2.16.6