summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/view-models/welcome/welcome-view.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/view-models/welcome/welcome-view.ts')
-rw-r--r--catalog-ui/src/app/view-models/welcome/welcome-view.ts57
1 files changed, 57 insertions, 0 deletions
diff --git a/catalog-ui/src/app/view-models/welcome/welcome-view.ts b/catalog-ui/src/app/view-models/welcome/welcome-view.ts
new file mode 100644
index 0000000000..154a70c301
--- /dev/null
+++ b/catalog-ui/src/app/view-models/welcome/welcome-view.ts
@@ -0,0 +1,57 @@
+'use strict';
+
+export interface IWelcomeViewMode {
+ onCloseButtonClick():void;
+}
+
+export class WelcomeViewModel {
+
+ firstLoad:boolean = true;
+ alreadyAnimated:Array<number> = [];
+
+ static '$inject' = [
+ '$scope',
+ '$state'
+ ];
+
+ constructor(private $scope:IWelcomeViewMode,
+ private $state:ng.ui.IStateService
+ ) {
+ this.init();
+ this.initScope();
+ window.setTimeout(():void => {
+ this.loadImages(():void=> {
+ window.setTimeout(():void =>{
+ $(".sdc-welcome-new-page").addClass("animated fadeIn");
+ },1000);
+ });
+ },0);
+ }
+
+ private initScope = ():void => {
+ this.$scope.onCloseButtonClick = ():void => {
+ this.$state.go("dashboard", {});
+ };
+ };
+
+ private init = ():void => {
+ let viewModelsHtmlBasePath:string = 'src/app/view-models/';
+ $('body').keyup((e):void=> {
+ if (e.keyCode == 27) { // escape key maps to keycode `27`
+ this.$state.go('dashboard');
+ }
+ });
+ };
+
+ private loadImages = (callback:Function):void => {
+ let src = $('.sdc-welcome-wrapper').css('background-image');
+ let url = src.match(/\((.*?)\)/)[1].replace(/('|")/g,'');
+
+ let img = new Image();
+ img.onload = function() {
+ callback();
+ };
+ img.src = url;
+ };
+
+}