diff --git a/docker/config.template.json b/docker/config.template.json index 821e22ef47de597674698de401e12b03964719e3..ce673de386adc3e34d46a27b789eef60a39aef6a 100644 --- a/docker/config.template.json +++ b/docker/config.template.json @@ -9,5 +9,6 @@ }, "captchaKey": "${CAPTCHA_KEY}", "showGitInfo": true, - "showChangelog": true + "showChangelog": true, + "landing" :"${LANDING_PROFILE}" } diff --git a/src/app/service/appconfig.service.ts b/src/app/service/appconfig.service.ts index 25ba60af7bccda5f4441cb7237112842ec0d019b..46e77329d2aee5953b8563cf0114e2411917296e 100644 --- a/src/app/service/appconfig.service.ts +++ b/src/app/service/appconfig.service.ts @@ -67,5 +67,9 @@ export class AppConfigService { public getTestInstanceModalKey(): string { return 'test_instance_modal'; -} + } + + public getLandingProfile(): string { + return this.config.landing || '' + } } diff --git a/src/app/shared/footer/footer.component.css b/src/app/shared/footer/footer.component.css index 4e65a66647da91466f28f2bf6b3427c73999ef03..1d1b633e0b99bf386b188289e88d4fa62337f785 100644 --- a/src/app/shared/footer/footer.component.css +++ b/src/app/shared/footer/footer.component.css @@ -85,3 +85,7 @@ a:hover { align-items: center; flex-direction: row; } +.container-width { + width: 85vw; + margin: auto; +} diff --git a/src/app/shared/footer/footer.component.html b/src/app/shared/footer/footer.component.html index e9afeb5ec769d3c574dff232fe6856c96d646e65..ee9ed55f36a20a9e8a621d2821338271e91b0c46 100644 --- a/src/app/shared/footer/footer.component.html +++ b/src/app/shared/footer/footer.component.html @@ -1,16 +1,17 @@ <footer class="footer col-xs-12" id="global-footer"> - <div class="container"> + <div class="container-width"> <div class="row row-center"> <div class="col-sm-2"> <!-- NMaaS Logo optionally --> <a href="https://www.geant.org/"> - <img alt="Geant Logo" src="/assets/images/geant-logo.png" class="image-link"/> + <img alt="Geant Logo" src="/assets/images/geant-logo.png" width="200" class="image-link"/> </a> </div> <div class="col-sm-3"> <img alt="EU flag" src="/assets/images/cofunded.png" width="200" style="padding-top: 15px; "/> </div> <div class="col-sm-2 col-sm-offset-5"> + <p><a href="https://docs.nmaas.eu/use-cases/virtual-noc/vnoc-introduction/">Documentation</a></p> <p><a routerLink="/privacy">{{ 'FOOTER.NOTICE' | translate }}</a></p> <p><a routerLink="/aup">{{ 'FOOTER.AUP' | translate }}</a></p> <p><a routerLink="/about">{{ 'FOOTER.CONTACT' | translate }}</a></p> @@ -20,13 +21,13 @@ <div class="row"> <div class="col-xs-10"> </div> - <div class="col-xs-2"> - <div> - <a class="footer-light footer-move-top" (click)="this.moveToTop();"> - <em class="fas fa-arrow-up"></em> {{ 'FOOTER.TOP' | translate }} - </a> - </div> - </div> +<!-- <div class="col-xs-2">--> +<!-- <div>--> +<!-- <a class="footer-light footer-move-top" (click)="this.moveToTop();">--> +<!-- <em class="fas fa-arrow-up"></em> {{ 'FOOTER.TOP' | translate }}--> +<!-- </a>--> +<!-- </div>--> +<!-- </div>--> </div> </div> diff --git a/src/app/shared/navbar/navbar.component.html b/src/app/shared/navbar/navbar.component.html index 3fb2b92f8b6fb37fd9202ebc3f3ab2acb626e20b..b898849bbbf7c85bb791048f7e9d4a657ce74a70 100644 --- a/src/app/shared/navbar/navbar.component.html +++ b/src/app/shared/navbar/navbar.component.html @@ -1,7 +1,7 @@ -<nav class="navbar navbar-default" id="navbar" role="navigation"> +<nav class="navbar navbar-default" id="navbar" role="navigation" style="margin:0"> <div class="container-fluid"> <div class="navbar-header"> - <a routerLink="/"><img alt="Geant" src="assets/images/logo-small.png" style="margin: 5px"></a> + <a routerLink="/"><img alt="Geant" src="assets/images/logo-small.png" style="margin: 5px; height:35px"></a> <button class="navbar-toggle" data-target="#navbarCollapse" data-toggle="collapse" type="button"> <span class="sr-only">Toggle Navigation</span> <em class="fas fa-bars"></em> diff --git a/src/app/welcome/welcome.component.css b/src/app/welcome/welcome.component.css index d00fd0310a08f1457c12bb382b09f7b9d1a2bfb1..76984195d58c20099c365139aac96eec3bec037b 100644 --- a/src/app/welcome/welcome.component.css +++ b/src/app/welcome/welcome.component.css @@ -1,65 +1,77 @@ html, body { min-height: 100vh; } - -.container-fluid { - min-height: 100vh; - background-repeat: no-repeat; - background-color: rgb(255, 255, 255); - padding-bottom: 50px; +.w-50{ + width: 50%; } - -.vertical-offset { - margin-top: 50px; +.flex{ + display: flex; } - -.landing-img-sm{ - width: 100%; - height: 100%; - max-width: 200px; - max-height: 160px; +.flex-column{ + flex-direction: column; } - -.landing-img-lg{ - width: 100%; - height: 100%; - max-width: 500px; - max-height: 400px; +.button{ + text-decoration: none; + font-weight: bold; + color:#ffffff; + border-radius: 30px; + padding:10px 20px; } - -.landing-img-left{ - padding-left: 15px; +.button-vNOC{ + background: #DC6E28; } - -.landing-img-right{ - padding-right: 15px; +.button-vLAB{ + background: #E9A143; +} +.margin2{ + margin: 3rem 0; } -.landing-img-logo{ - width: 100%; +.shape { + padding-bottom: 25px; + border-radius: 100% 100% 0 0; + background: #FFF6EF; height: 100%; - max-height: 150px; - max-width: 200px; + width: 80%; + overflow: hidden; + box-shadow: inset 0 6px 7px rgba(0, 0, 0, .2) } - -.landing-block-padding{ - padding-top: 4vh; +.position { + transform: rotate(-90deg); + display: flex; + justify-content: center; + align-items: flex-end; + height: 100%; + width: 65%; + background-color: #ffffff; } - -.features-bottom-padding{ - padding-bottom: 1px; +.map { + height: 80%; + width: 100%; } - -.features-top-padding{ - padding-top: 15px; +.cls-1,.cls-2 { + fill:none; + stroke-linecap:round; + stroke-miterlimit:10; + stroke-width:3px; +} +.cls-1{ + stroke:#E57002; +} +.cls-2{ + stroke:#EEA054; } -.banner{ - background-color : #424242; - color: #E8E8E8; - margin-top: -20px; - padding: 12px; - justify-self: center; - display: grid; - width: 100%; +.line { + stroke-dasharray: 400; + stroke-dashoffset: 400; + animation: draw 10s infinite alternate; +} +@keyframes draw { + from { + stroke-dashoffset: 400; + } + to { + stroke-dashoffset: 0; + } } diff --git a/src/app/welcome/welcome.component.html b/src/app/welcome/welcome.component.html index c59992c4c495bd0180d1bf0088524b5280362389..b37b7f0c7fcaa3906604873d76991701c59e784c 100644 --- a/src/app/welcome/welcome.component.html +++ b/src/app/welcome/welcome.component.html @@ -1,169 +1,52 @@ <div *ngIf="autoLogout" class="banner flex-center"> <div style="display: grid"> - <span class="text-center">{{'WELCOME.TIME_EXPIRED' | translate}} + <span class="text-center">{{'WELCOME.TIME_EXPIRED' | translate}} <a class="" style="width:3rem; height: 3rem; color: white; cursor: pointer" (click)="autoLogout=false"> - <em class="pi pi-times"></em> - </a> - </span> + <em class="pi pi-times"></em> + </a> + </span> </div> </div> -<div class="container-fluid" onresize="this.onResize();"> + +<div *ngIf="landingProfile === 'VNOC'; else elseBlock"> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" id="welcome-container" - style="text-align: justify; font-size: large;"> - <div class="col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-lg-8 col-md-8 col-sm-8 col-xs-12"> - <div style="display: block;" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 panel-body"> - <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" style="padding-bottom: 20px;"> - <h2><strong>{{ 'WELCOME.TITLE1' | translate }}</strong> (<a href="https://www.geant.org/NMaaS" - target="_blank" - rel="noopener noreferrer">NMaaS</a>) - {{ 'WELCOME.TITLE2'| translate }}</h2> - </div> - <div style="padding-left: 10px;" class="col-lg-6 col-md-12 col-sm-12 col-xs-12"> - <p> - {{ 'WELCOME.INTRO_TEXT' | translate }} - </p> - </div> - <div class="col-lg-6 col-md-12 col-sm-12 col-xs-12 "> - <img src="../../assets/images/landing/nmaas_schema_simple_text.png" - class="center-block glyphicon-align-center landing-img-sm" - style="width: 100%; height: 100%; max-width: 800px; max-height: 600px;" alt="NMaaS Schema"> - </div> - </div> - <br> - <div style="display: block;" class="col-lg-12 panel-body landing-block-padding"> - <div class="col-lg-3 col-md-4 col-sm-12 col-xs-12 "> - <img src="../../assets/images/landing/people_2.png" alt="Users" - class="center-block landing-img-sm landing-img-left"> - </div> - <div style="padding-left: 10px;" class="col-lg-9 col-md-8 col-sm-12 col-xs-12"> - <h3>{{ 'WELCOME.TARGET_USERS_HEADER' | translate }}</h3> - <p> - {{ 'WELCOME.TARGET_USERS_TEXT' | translate }} - </p> - </div> - </div> - <br> - <div style="display: block;" class="col-lg-12 panel-body landing-block-padding"> - <div style="padding-left: 10px;" class="col-lg-8 col-md-12 col-sm-12 col-xs-12"> - <h3>{{ 'WELCOME.MARKETPLACE_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.MARKETPLACE_TEXT' | translate }}</p> - </div> - <div class="col-lg-3 col-md-12 col-sm-12 col-xs-12"> - <img src="../../assets/images/landing/shop_2.png" alt="Marketplace icon" - class="glyphicon-align-center center-block landing-img-sm landing-img-right"> - </div> - </div> - <br> - <div style="display: block;" class="col-lg-12 panel-body landing-block-padding"> - <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12"> - <img src="../../assets/images/landing/costs_3.png" alt="Cost reduction icon" - class="center-block landing-img-sm landing-img-left"> - </div> - <div style="padding-left: 10px;" class="col-lg-9 col-md-9 col-sm-12 col-xs-12"> - <h3>{{ 'WELCOME.COST_REDUCTION_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.COST_REDUCTION_TEXT' | translate }}</p> - </div> - </div> - <div style="display: block;" class="col-lg-12 panel-body landing-block-padding"> - <div style="padding-left: 10px;" class="col-lg-9 col-md-9 col-sm-12 col-xs-12"> - <h3>{{ 'WELCOME.SECURITY_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.SECURITY_TEXT' | translate }}</p> - </div> - <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12"> - <img src="../../assets/images/landing/security.png" alt="Security icon" - class="center-block landing-img-sm landing-img-right"/> - </div> - </div> - <br> - </div> - <div class="col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-lg-8 col-md-8 col-sm-8 col-xs-12" - style="border-top: solid 1px #6c757d; margin-top: 20px;"> - <div class="col-lg-offset-4 col-lg-4 col-md-offset-2 col-md-8 col-sm-offset-1 col-sm-10 text-center features-bottom-padding features-top-padding"> - <h2>{{ 'WELCOME.NMAAS_FEATURES_HEADER' | translate }}</h2> - </div> - <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 features-bottom-padding features-top-padding"> - <div class="col-lg-offset-1 col-md-offset-1 col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.APP_MARKET_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.APP_MARKET_TEXT' | translate }}</p> - </div> - <div class="col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.OWN_APPS_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.OWN_APPS_TEXT' | translate }}</p> - </div> - </div> - <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 features-bottom-padding features-top-padding"> - <div class="col-lg-offset-1 col-md-offset-1 col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.EDUGAIN_SUPPORT_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.EDUGAIN_SUPPORT_TEXT' | translate }} - <p> - </div> - <div class="col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.FAST_DEPLOYMENT_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.FAST_DEPLOYMENT_TEXT' | translate }}</p> - </div> - </div> - <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 features-bottom-padding features-top-padding"> - <div class="col-lg-offset-1 col-md-offset-1 col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.WEB_PORTAL_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.WEB_PORTAL_TEXT' | translate }}</p> - </div> - <div class="col-lg-5 col-md-5 col-sm-6 col-xs-12"> - <h3>{{ 'WELCOME.KUBERNETES_HEADER' | translate }}</h3> - <p>{{ 'WELCOME.KUBERNETES_TEXT' | translate }}</p> - </div> - </div> - </div> - <div class="col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-lg-8 col-md-8 col-sm-8 col-xs-12" - style="border-top: solid 1px #6c757d; margin-top: 20px;"> - <div class="col-lg-offset-4 col-lg-4 col-md-offset-4 col-md-4 col-sm-offset-2 col-sm-8 col-xs-12 text-center" - style="padding-top: 15px; - padding-bottom: 10px;"><h2>{{ 'WELCOME.TECHNOLOGIES_USED_HEADER' | translate }}</h2></div> - <div class="center-block col-lg-12 col-md-12 col-sm-12 col-xs-12"> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://angular.io/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/angular.png" alt="Angular logo" class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://getbootstrap.com/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/bootstrap.png" alt="Bootstrap logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://spring.io/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/spring.png" alt="Spring logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://www.postgresql.org/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/postgres.png" alt="PostgreSQL logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://www.docker.com/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/docker.png" alt="Docker logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://kubernetes.io/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/kuber.png" alt="Kubernetes logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://about.gitlab.com/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/gitlab.png" alt="Gitlab logo" - class="landing-img-logo"></a> - </div> - <div class="col-lg-3 col-md-4 col-sm-6 col-xs-6"> - <a href="https://www.ansible.com/" target="_blank" rel="noopener noreferrer nofollow"> - <img src="../../assets/images/logo/ansible.png" alt="Ansible logo" class="landing-img-logo"></a> - </div> - </div> + style="text-align: justify; padding: 0"> + <div class="col-lg-12" style="padding: 0"> + <section class="flex" style="justify-content: space-between; align-items: center;"> + <div class="flex flex-column w-50" style="padding-left:160px; align-items: center"> + <div> + <img src="assets/images/landing/VirtualNOC.png" width="70%"> + <p class="margin2" style="width: 70%"> + sample headline + </p> + <a href="https://vnoc.docs.nmaas.eu/" class="button button-vNOC margin2"> + Learn more + </a> + </div> + </div> + <div class="flex w-50" style="justify-content: end"> + <div class="position"> + <div class="shape"> + <svg class="map" xmlns="http://www.w3.org/2000/svg" viewBox="136 0 180 220"> + <path id="green-line" class="line cls-2" d="M 210 0 l 0 37 a 1 1 0 0 1 0 5 a 1 1 0 0 1 0 -5" transform="translate(-27 0)"/> + <path id="yellow-line" class="line cls-1" d="M 222 0 l 0 46 L 209 63 L 209 85 A 1 1 0 0 1 209 91 A 1 1 0 0 1 209 85" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-2" d="M 234 0 l 0 60 L 234 60 L 234 60 A 1 1 0 0 1 234 66 A 1 1 0 0 1 234 60" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-1" d="M 245 0 l 1 54 l 12 19 l 0 41 a 1 1 0 0 1 0 7 a 1 1 0 0 1 0 -7" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-1" d="M 260 0 l 0 38 l 12 15 l 0 46 a 1 1 0 0 1 0 6 a 1 1 0 0 1 0 -6" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-2" d="M 278 0 l 0 25 a 1 1 0 0 1 0 5 a 1 1 0 0 1 0 -5" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-1" d="M 295 0 l 0 49 l -8 14 l 0 70 a 1 1 0 0 1 0 6 a 1 1 0 0 1 0 -6" transform="translate(-27 0)"/> + <path id="green-line" class="line cls-2" d="M 310 0 l 0 80 a 1 1 0 0 1 0 5 a 1 1 0 0 1 0 -5" transform="translate(-27 0)"/> + </svg> + </div> + </div> + </div> + </section> </div> <div id="login-register-panel" class="col-lg-3 col-md-5 col-sm-6 col-xs-12 pull-right login-vertical-offset" [ngClass]="router.url.startsWith('/welcome/login?ssoUserId=') ? '' : 'collapse'" - style="z-index: 800; position: fixed; right: 1px; margin-top: -15px; max-height: 50vh; font-size: 14px;"> + style="z-index: 800; position: fixed; right: 1px; margin-top: -15px; max-height: 50vh; font-size: 14px; padding-top: 20px"> <div class="panel panel-default"> <div class="panel-heading"> </div> @@ -172,8 +55,8 @@ <li role="login" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:false}"> <a [routerLink]="['login']">{{ 'WELCOME.LOGIN' | translate }}</a></li> <li role="registration" [routerLinkActive]="['active']" - [routerLinkActiveOptions]="{exact:true}"><a - [routerLink]="['registration']">{{ 'WELCOME.REGISTER' | translate }}</a></li> + [routerLinkActiveOptions]="{exact:true}"> + <a [routerLink]="['registration']">{{ 'WELCOME.REGISTER' | translate }}</a></li> </ul> <router-outlet></router-outlet> </div> @@ -182,3 +65,99 @@ </div> </div> </div> + + +<ng-template #elseBlock> + <div> + <div class="row"> + <div class="" id="welcome-container" + style="text-align: justify; padding: 0"> + <div class="col-lg-12" style="padding: 0"> + <section class="flex" style="justify-content: space-between; align-items: center;"> + <div class="flex flex-column w-50" style="padding-left:160px; align-items: center"> + <div> + <img src="assets/images/landing/VirtualLab.png" width="70%"> + <p class="margin2" style="width: 70%"> + sample headline + </p> + <a href="https://vnoc.docs.nmaas.eu/" class="button button-vLAB margin2"> + Learn more + </a> + </div> + </div> + <div class="flex w-50" style="justify-content: end"> + <svg width="60%" height="80%" viewBox="0 275 275 275" xmlns="http://www.w3.org/2000/svg"> + <g transform="scale(1) translate(0, 0)"> + <path fill="#C0B4CF"> + <animate attributeName="d" dur="21s" repeatCount="indefinite" + values="M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C370,0 500,150 500,275 C500,400 370,550 275,550 C180,550 50,400 50,275 C50,150 180,0 275,0 Z; + M275,0 C420,0 550,150 550,275 C550,400 420,550 275,550 C130,550 0,400 0,275 C0,150 130,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C350,0 500,150 500,275 C500,400 350,550 275,550 C200,550 50,400 50,275 C50,150 200,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z" + /> + </path> + </g> + <g transform="scale(0.9) translate(27.5, 27.5)"> + <path fill="#AC9CC0" > + <animate attributeName="d" dur="20s" repeatCount="indefinite" + values="M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C370,0 500,150 500,275 C500,400 370,550 275,550 C180,550 50,400 50,275 C50,150 180,0 275,0 Z; + M275,0 C420,0 550,150 550,275 C550,400 420,550 275,550 C130,550 0,400 0,275 C0,150 130,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C350,0 500,150 500,275 C500,400 350,550 275,550 C200,550 50,400 50,275 C50,150 200,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z" + /> + </path> + </g> + <g transform="scale(0.8) translate(55, 55)"> + <path fill="#A391B9"> + <animate attributeName="d" dur="18s" repeatCount="indefinite" + values="M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C370,0 500,150 500,275 C500,400 370,550 275,550 C180,550 50,400 50,275 C50,150 180,0 275,0 Z; + M275,0 C420,0 550,150 550,275 C550,400 420,550 275,550 C130,550 0,400 0,275 C0,150 130,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C350,0 500,150 500,275 C500,400 350,550 275,550 C200,550 50,400 50,275 C50,150 200,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z" + /> + </path> + </g> + <g transform="scale(0.7) translate(82.5, 82.5)"> + <path fill="#785C97"> + <animate attributeName="d" dur="19s" repeatCount="indefinite" + values="M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C370,0 500,150 500,275 C500,400 370,550 275,550 C180,550 50,400 50,275 C50,150 180,0 275,0 Z; + M275,0 C420,0 550,150 550,275 C550,400 420,550 275,550 C130,550 0,400 0,275 C0,150 130,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z; + M275,0 C350,0 500,150 500,275 C500,400 350,550 275,550 C200,550 50,400 50,275 C50,150 200,0 275,0 Z; + M275,0 C400,0 550,150 550,275 C550,400 400,550 275,550 C150,550 0,400 0,275 C0,150 150,0 275,0 Z" + /> + </path> + </g> + </svg> + </div> + </section> + </div> + <div id="login-register-panel" class="col-lg-3 col-md-5 col-sm-6 col-xs-12 pull-right login-vertical-offset" + [ngClass]="router.url.startsWith('/welcome/login?ssoUserId=') ? '' : 'collapse'" + style="z-index: 800; position: fixed; right: 1px; margin-top: -15px; max-height: 50vh; font-size: 14px; padding-top: 20px"> + <div class="panel panel-default"> + <div class="panel-heading"> + </div> + <div class="panel-body" id="login-out" style="overflow-y: auto;"> + <ul class="nav nav-tabs nav-justified"> + <li role="login" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:false}"> + <a [routerLink]="['login']">{{ 'WELCOME.LOGIN' | translate }}</a></li> + <li role="registration" [routerLinkActive]="['active']" + [routerLinkActiveOptions]="{exact:true}"> + <a [routerLink]="['registration']">{{ 'WELCOME.REGISTER' | translate }}</a></li> + </ul> + <router-outlet></router-outlet> + </div> + </div> + </div> + </div> + </div> + </div> +</ng-template> diff --git a/src/app/welcome/welcome.component.ts b/src/app/welcome/welcome.component.ts index 28a252852de68582390c0fcde4c17816a6b153be..6e8a863fd7e15aad123a0844796c5ecf508c537b 100644 --- a/src/app/welcome/welcome.component.ts +++ b/src/app/welcome/welcome.component.ts @@ -14,6 +14,8 @@ export class WelcomeComponent implements OnInit, AfterViewChecked, AfterContentC public autoLogout = false; + public landingProfile = ''; + constructor(private appConfig: AppConfigService, public router: Router, private serviceHealth: ServiceUnavailableService, @@ -32,36 +34,42 @@ export class WelcomeComponent implements OnInit, AfterViewChecked, AfterContentC if (!this.serviceHealth.isServiceAvailable) { this.router.navigate(['/service-unavailable']); } - this.onResize(); + // this.onResize(); + + this.landingProfile = this.appConfig.getLandingProfile(); + console.log("Landing profile = ", this.landingProfile) } ngAfterContentChecked() { - this.onResize(); + // this.onResize(); } ngAfterViewChecked() { - this.onResize(); + // this.onResize(); } public onCloseBanner() { this.autoLogout = false; this.router.navigate(['welcome/login']); } + + // As the comment belove said, its very old solution ( working, but may produce problems) If we rebuild the landing page completly, + //I would advice to not use onRize // kbeyrowski - onResize() { - // TODO - // rewrite this code, use css instead of js for better performance - this.height = document.getElementById('global-footer').offsetHeight; - const navHeight = document.getElementById('navbar').offsetHeight; - // document.getElementById("welcome-container").style.marginBottom = `${this.height}px`; - // document.getElementById("welcome-container").style.marginTop = `${navHeight + 2}px`; - document.getElementById('login-out').style.maxHeight = `calc(95vh - ${this.height + navHeight + 10}px)`; - // document.getElementById('login-out').style.paddingTop = `${navHeight}`; - if (this.height > 90) { - document.getElementById('global-footer').style.textAlign = 'center'; - document.getElementById('login-out').style.maxHeight = `calc(94vh - ${this.height + navHeight + 10}px)`; - } else { - document.getElementById('global-footer').style.textAlign = 'right'; - } - } + // onResize() { + // // TODO + // // rewrite this code, use css instead of js for better performance + // this.height = document.getElementById('global-footer').offsetHeight; + // const navHeight = document.getElementById('navbar').offsetHeight; + // // document.getElementById("welcome-container").style.marginBottom = `${this.height}px`; + // // document.getElementById("welcome-container").style.marginTop = `${navHeight + 2}px`; + // document.getElementById('login-out').style.maxHeight = `calc(95vh - ${this.height + navHeight + 10}px)`; + // // document.getElementById('login-out').style.paddingTop = `${navHeight}`; + // if (this.height > 90) { + // document.getElementById('global-footer').style.textAlign = 'center'; + // document.getElementById('login-out').style.maxHeight = `calc(94vh - ${this.height + navHeight + 10}px)`; + // } else { + // document.getElementById('global-footer').style.textAlign = 'right'; + // } + // } } diff --git a/src/assets/images/landing/VirtualLab.png b/src/assets/images/landing/VirtualLab.png new file mode 100644 index 0000000000000000000000000000000000000000..a790f2f6074d2c69eeb9669c459df0757a7dccd7 Binary files /dev/null and b/src/assets/images/landing/VirtualLab.png differ diff --git a/src/assets/images/landing/VirtualNOC.png b/src/assets/images/landing/VirtualNOC.png new file mode 100644 index 0000000000000000000000000000000000000000..165834315978ef733ab0c4a6c4c6a2be4d9864bd Binary files /dev/null and b/src/assets/images/landing/VirtualNOC.png differ diff --git a/src/assets/images/landing/g1.png b/src/assets/images/landing/g1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f20f92e46341994a52de21b3979fe31f5c36aa0 Binary files /dev/null and b/src/assets/images/landing/g1.png differ diff --git a/src/assets/images/logo-small.png b/src/assets/images/logo-small.png index cf9457bc4236bcebff12b0721d918253b3eb535d..52f0ae977185a1540934b93368af0fcdd63e159e 100644 Binary files a/src/assets/images/logo-small.png and b/src/assets/images/logo-small.png differ diff --git a/src/config.json b/src/config.json index fcc2368efb15cb4f860abf0938afec2160a9a9f8..3b4e008b3f93a80b48bfe1b62a590d6efd354817 100644 --- a/src/config.json +++ b/src/config.json @@ -9,6 +9,7 @@ }, "captchaKey": "6LeJgbQUAAAAAAs5pVoY3ZTRimQKNYmyC_QyQ4Yg", "showGitInfo": true, - "showChangelog": true + "showChangelog": true, + "landing" :"VNOC" }