@ofidj/generator-fidj 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/generators/app/index.js +200 -0
  4. package/generators/app/templates/app2018/.travis.yml +35 -0
  5. package/generators/app/templates/app2018/LICENSE +21 -0
  6. package/generators/app/templates/app2018/Procfile +1 -0
  7. package/generators/app/templates/app2018/README.md +49 -0
  8. package/generators/app/templates/app2018/config.xml +91 -0
  9. package/generators/app/templates/app2018/gulpfile.js +63 -0
  10. package/generators/app/templates/app2018/ionic.config.json +9 -0
  11. package/generators/app/templates/app2018/package.json +90 -0
  12. package/generators/app/templates/app2018/platforms/README.md +1 -0
  13. package/generators/app/templates/app2018/resources/README.md +6 -0
  14. package/generators/app/templates/app2018/resources/icon.png +0 -0
  15. package/generators/app/templates/app2018/resources/marketing-01-ipad.png +0 -0
  16. package/generators/app/templates/app2018/resources/marketing-01-iphone.png +0 -0
  17. package/generators/app/templates/app2018/resources/marketing-02-ipad.png +0 -0
  18. package/generators/app/templates/app2018/resources/marketing-02-iphone.png +0 -0
  19. package/generators/app/templates/app2018/resources/marketing-03-ipad.png +0 -0
  20. package/generators/app/templates/app2018/resources/marketing-03-iphone.png +0 -0
  21. package/generators/app/templates/app2018/resources/marketing.json +19 -0
  22. package/generators/app/templates/app2018/resources/splash.png +0 -0
  23. package/generators/app/templates/app2018/src/app/app.component.ts +88 -0
  24. package/generators/app/templates/app2018/src/app/app.html +19 -0
  25. package/generators/app/templates/app2018/src/app/app.module.ts +40 -0
  26. package/generators/app/templates/app2018/src/app/app.scss +16 -0
  27. package/generators/app/templates/app2018/src/app/main.ts +5 -0
  28. package/generators/app/templates/app2018/src/app/shared/card.model.ts +10 -0
  29. package/generators/app/templates/app2018/src/app/shared/profile.service.ts +46 -0
  30. package/generators/app/templates/app2018/src/app/shared/shared.module.ts +35 -0
  31. package/generators/app/templates/app2018/src/app/shared/storage.service.ts +11 -0
  32. package/generators/app/templates/app2018/src/app/shared/version.const.ts +5 -0
  33. package/generators/app/templates/app2018/src/assets/icon/favicon.ico +0 -0
  34. package/generators/app/templates/app2018/src/assets/imgs/gg.png +0 -0
  35. package/generators/app/templates/app2018/src/assets/imgs/github.png +0 -0
  36. package/generators/app/templates/app2018/src/assets/imgs/login.svg +5668 -0
  37. package/generators/app/templates/app2018/src/assets/imgs/logo.png +0 -0
  38. package/generators/app/templates/app2018/src/index.html +49 -0
  39. package/generators/app/templates/app2018/src/manifest.json +13 -0
  40. package/generators/app/templates/app2018/src/pages/home/home.html +56 -0
  41. package/generators/app/templates/app2018/src/pages/home/home.scss +3 -0
  42. package/generators/app/templates/app2018/src/pages/home/home.ts +126 -0
  43. package/generators/app/templates/app2018/src/pages/login/login.html +56 -0
  44. package/generators/app/templates/app2018/src/pages/login/login.scss +44 -0
  45. package/generators/app/templates/app2018/src/pages/login/login.ts +59 -0
  46. package/generators/app/templates/app2018/src/pages/profile/profile.html +33 -0
  47. package/generators/app/templates/app2018/src/pages/profile/profile.scss +3 -0
  48. package/generators/app/templates/app2018/src/pages/profile/profile.ts +36 -0
  49. package/generators/app/templates/app2018/src/service-worker.js +31 -0
  50. package/generators/app/templates/app2018/src/theme/variables.scss +88 -0
  51. package/generators/app/templates/app2018/tests/karma.unit-tests.conf.js +84 -0
  52. package/generators/app/templates/app2018/tests/unit/app.test.js +10 -0
  53. package/generators/app/templates/app2018/tsconfig.json +28 -0
  54. package/generators/app/templates/app2018/tslint.json +8 -0
  55. package/generators/app/templates/app2018/web.js +21 -0
  56. package/generators/app/templates/app2021/.travis.yml +32 -0
  57. package/generators/app/templates/app2021/LICENSE +21 -0
  58. package/generators/app/templates/app2021/Procfile +1 -0
  59. package/generators/app/templates/app2021/README.md +45 -0
  60. package/generators/app/templates/app2021/angular.json +188 -0
  61. package/generators/app/templates/app2021/browserslist +12 -0
  62. package/generators/app/templates/app2021/ionic.config.json +9 -0
  63. package/generators/app/templates/app2021/karma.conf.js +31 -0
  64. package/generators/app/templates/app2021/package-lock.json +5 -0
  65. package/generators/app/templates/app2021/package.json +77 -0
  66. package/generators/app/templates/app2021/platforms/README.md +1 -0
  67. package/generators/app/templates/app2021/resources/README.md +6 -0
  68. package/generators/app/templates/app2021/resources/icon.png +0 -0
  69. package/generators/app/templates/app2021/resources/marketing-01-ipad.png +0 -0
  70. package/generators/app/templates/app2021/resources/marketing-01-iphone.png +0 -0
  71. package/generators/app/templates/app2021/resources/marketing-02-ipad.png +0 -0
  72. package/generators/app/templates/app2021/resources/marketing-02-iphone.png +0 -0
  73. package/generators/app/templates/app2021/resources/marketing-03-ipad.png +0 -0
  74. package/generators/app/templates/app2021/resources/marketing-03-iphone.png +0 -0
  75. package/generators/app/templates/app2021/resources/marketing.json +19 -0
  76. package/generators/app/templates/app2021/resources/splash.png +0 -0
  77. package/generators/app/templates/app2021/src/app/app-routing.module.ts +25 -0
  78. package/generators/app/templates/app2021/src/app/app.component.html +3 -0
  79. package/generators/app/templates/app2021/src/app/app.component.scss +0 -0
  80. package/generators/app/templates/app2021/src/app/app.component.spec.ts +50 -0
  81. package/generators/app/templates/app2021/src/app/app.component.ts +28 -0
  82. package/generators/app/templates/app2021/src/app/app.module.ts +24 -0
  83. package/generators/app/templates/app2021/src/app/content/content-routing.module.ts +16 -0
  84. package/generators/app/templates/app2021/src/app/content/content.module.ts +20 -0
  85. package/generators/app/templates/app2021/src/app/content/content.page.html +31 -0
  86. package/generators/app/templates/app2021/src/app/content/content.page.scss +0 -0
  87. package/generators/app/templates/app2021/src/app/content/content.page.ts +26 -0
  88. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.html +4 -0
  89. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.scss +4 -0
  90. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.spec.ts +24 -0
  91. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.ts +16 -0
  92. package/generators/app/templates/app2021/src/app/explore-container/explore-container.module.ts +14 -0
  93. package/generators/app/templates/app2021/src/app/my/my-routing.module.ts +36 -0
  94. package/generators/app/templates/app2021/src/app/my/my.module.ts +19 -0
  95. package/generators/app/templates/app2021/src/app/my/my.page.html +15 -0
  96. package/generators/app/templates/app2021/src/app/my/my.page.scss +1 -0
  97. package/generators/app/templates/app2021/src/app/my/my.page.spec.ts +26 -0
  98. package/generators/app/templates/app2021/src/app/my/my.page.ts +25 -0
  99. package/generators/app/templates/app2021/src/app/profile/profile-routing.module.ts +16 -0
  100. package/generators/app/templates/app2021/src/app/profile/profile.module.ts +20 -0
  101. package/generators/app/templates/app2021/src/app/profile/profile.page.html +49 -0
  102. package/generators/app/templates/app2021/src/app/profile/profile.page.scss +0 -0
  103. package/generators/app/templates/app2021/src/app/profile/profile.page.spec.ts +25 -0
  104. package/generators/app/templates/app2021/src/app/profile/profile.page.ts +44 -0
  105. package/generators/app/templates/app2021/src/app/shared/const.ts +3 -0
  106. package/generators/app/templates/app2021/src/app/signin/signin-routing.module.ts +16 -0
  107. package/generators/app/templates/app2021/src/app/signin/signin.module.ts +18 -0
  108. package/generators/app/templates/app2021/src/app/signin/signin.page.html +53 -0
  109. package/generators/app/templates/app2021/src/app/signin/signin.page.scss +36 -0
  110. package/generators/app/templates/app2021/src/app/signin/signin.page.ts +69 -0
  111. package/generators/app/templates/app2021/src/assets/icon/favicon.png +0 -0
  112. package/generators/app/templates/app2021/src/assets/shapes.svg +1 -0
  113. package/generators/app/templates/app2021/src/environments/environment.prod.ts +3 -0
  114. package/generators/app/templates/app2021/src/environments/environment.ts +16 -0
  115. package/generators/app/templates/app2021/src/global.scss +26 -0
  116. package/generators/app/templates/app2021/src/index.html +26 -0
  117. package/generators/app/templates/app2021/src/main.ts +12 -0
  118. package/generators/app/templates/app2021/src/polyfills.ts +67 -0
  119. package/generators/app/templates/app2021/src/test.ts +20 -0
  120. package/generators/app/templates/app2021/src/theme/variables.scss +232 -0
  121. package/generators/app/templates/app2021/src/zone-flags.ts +5 -0
  122. package/generators/app/templates/app2021/tests/protractor.conf.js +36 -0
  123. package/generators/app/templates/app2021/tests/src/app.e2e-spec.ts +14 -0
  124. package/generators/app/templates/app2021/tests/src/app.po.ts +11 -0
  125. package/generators/app/templates/app2021/tests/tsconfig.json +13 -0
  126. package/generators/app/templates/app2021/tsconfig.app.json +18 -0
  127. package/generators/app/templates/app2021/tsconfig.json +23 -0
  128. package/generators/app/templates/app2021/tsconfig.spec.json +18 -0
  129. package/generators/app/templates/app2021/tslint.json +149 -0
  130. package/generators/app/templates/app2021/web.js +21 -0
  131. package/package.json +41 -0
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" dir="ltr">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title><%= appName %></title>
6
+ <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
7
+ <meta name="format-detection" content="telephone=no">
8
+ <meta name="msapplication-tap-highlight" content="no">
9
+
10
+ <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
11
+ <link rel="manifest" href="manifest.json">
12
+ <meta name="theme-color" content="#4e8ef7">
13
+
14
+ <!-- add to homescreen for ios -->
15
+ <meta name="apple-mobile-web-app-capable" content="yes">
16
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
17
+
18
+ <!-- cordova.js required for cordova apps (remove if not needed) -->
19
+ <script src="cordova.js"></script>
20
+
21
+ <!-- un-comment this code to enable service worker
22
+ <script>
23
+ if ('serviceWorker' in navigator) {
24
+ navigator.serviceWorker.register('service-worker.js')
25
+ .then(() => console.log('service worker installed'))
26
+ .catch(err => console.error('Error', err));
27
+ }
28
+ </script>-->
29
+
30
+ <link href="build/main.css" rel="stylesheet">
31
+
32
+ </head>
33
+ <body>
34
+
35
+ <!-- Ionic's root component and where the app will load -->
36
+ <ion-app></ion-app>
37
+
38
+ <!-- The polyfills js is generated during the build process -->
39
+ <script src="build/polyfills.js"></script>
40
+
41
+ <!-- The vendor js is generated during the build process
42
+ It contains all of the dependencies in node_modules -->
43
+ <script src="build/vendor.js"></script>
44
+
45
+ <!-- The main bundle js is generated during the build process -->
46
+ <script src="build/main.js"></script>
47
+
48
+ </body>
49
+ </html>
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "<%= appName %>",
3
+ "short_name": "<%= appName %>",
4
+ "start_url": "index.html",
5
+ "display": "standalone",
6
+ "icons": [{
7
+ "src": "assets/imgs/logo.png",
8
+ "sizes": "512x512",
9
+ "type": "image/png"
10
+ }],
11
+ "background_color": "#4e8ef7",
12
+ "theme_color": "#4e8ef7"
13
+ }
@@ -0,0 +1,56 @@
1
+ <ion-header>
2
+ <ion-navbar>
3
+ <button ion-button menuToggle>
4
+ <ion-icon name="menu"></ion-icon>
5
+ </button>
6
+ <ion-title><%= appName %></ion-title>
7
+ </ion-navbar>
8
+ </ion-header>
9
+
10
+ <ion-content padding>
11
+
12
+ <ion-refresher (ionRefresh)="doRefresh($event)">
13
+ <ion-refresher-content></ion-refresher-content>
14
+ </ion-refresher>
15
+
16
+ <ion-slides [@cardsState]="(!cardSelected)">
17
+ <ion-slide *ngFor="let card of cards"
18
+ (click)="cardTapped($event, $index, card)">
19
+ <h1 [ngStyle]="{'font-size.em' : (card.value >= 10) ? 11 : 22}">{{card.value}}</h1>
20
+ </ion-slide>
21
+ </ion-slides>
22
+
23
+ <div *ngIf="cardSelected">
24
+
25
+ <ion-grid>
26
+ <ion-row justify-content-center>
27
+ <ion-col col-3 style="text-align: center">
28
+ <button ion-button color="dark" outline (click)="goUp(null)">{{cards[cardSelected - 1].value}}
29
+ </button>
30
+ </ion-col>
31
+ </ion-row>
32
+ </ion-grid>
33
+
34
+ <ion-list>
35
+ <ion-item>
36
+ <ion-input type="text" placeholder="Add a new story" [(ngModel)]="story" name="story"></ion-input>
37
+ <button ion-button clear (click)="add(cardSelected, story); story = null;" item-end icon-only>
38
+ <ion-icon name="add"></ion-icon>
39
+ </button>
40
+ </ion-item>
41
+
42
+ <ion-item-sliding *ngFor="let comment of cards[cardSelected - 1].comments">
43
+ <ion-item>
44
+ <span style="white-space: normal;">{{comment}}</span>
45
+ </ion-item>
46
+ <ion-item-options side="right">
47
+ <button ion-button color="danger">
48
+ <ion-icon name="trash" (click)="remove(cardSelected, $index)"></ion-icon>
49
+ </button>
50
+ </ion-item-options>
51
+ </ion-item-sliding>
52
+ </ion-list>
53
+
54
+ </div>
55
+
56
+ </ion-content>
@@ -0,0 +1,126 @@
1
+ import {Component} from '@angular/core';
2
+ import {NavController} from 'ionic-angular';
3
+ import {FidjService} from "fidj";
4
+
5
+ import {
6
+ trigger,
7
+ state,
8
+ style,
9
+ animate,
10
+ transition
11
+ } from '@angular/animations';
12
+
13
+ import {Card} from "../../app/shared/card.model";
14
+ import {Profile} from "../../app/shared/profile.service";
15
+
16
+ @Component({
17
+ selector: 'page-home',
18
+ templateUrl: 'home.html',
19
+ animations: [
20
+ trigger('cardsState', [
21
+ state('true', style({
22
+ height: '100%',
23
+ transform: 'scale(1)'
24
+ })),
25
+ state('false', style({
26
+ height: '0%',
27
+ transform: 'scale(0.1)'
28
+ })),
29
+ transition('true => false', animate('1000ms ease-in')),
30
+ transition('false => true', animate('1ms ease-out'))
31
+ ])
32
+ ]
33
+ })
34
+ export class HomePage {
35
+
36
+ // use one container for session
37
+ private dataContainer: {
38
+ cards: Array<Card>
39
+ };
40
+
41
+ // extract data for display
42
+ public cards: Array<Card>;
43
+ public cardSelected: number = 0;
44
+
45
+ constructor(public navCtrl: NavController,
46
+ public profile: Profile,
47
+ private fidjService: FidjService) {
48
+ this.cards = [];
49
+ this.dataContainer = {
50
+ cards: this.cards
51
+ };
52
+
53
+ this.profile.readyForSync.subscribe(
54
+ (ready) => {
55
+ if (ready === true && this.fidjService.isLoggedIn()) {
56
+ this.doRefresh();
57
+ }
58
+ },
59
+ (err) => {
60
+ console.error('Error: ' + err);
61
+ },
62
+ () => {
63
+ console.log('Completed', this.cards);
64
+ });
65
+ }
66
+
67
+ doRefresh(refresher?) {
68
+ this.fidjService
69
+ .sync(() => {
70
+ let i0 = 0, i1 = 1;
71
+ for (let i = 0; i < 12; i++) {
72
+ const i1_old = i1;
73
+ i1 = i1 + i0;
74
+ if (i0 === 1 && i1_old === 1) {
75
+ this.cards.push(new Card('?', []));
76
+ } else {
77
+ this.cards.push(new Card('' + i0, []));
78
+ }
79
+ i0 = i1_old;
80
+ }
81
+ })
82
+ .then(() => {
83
+ return this.fidjService.findAll();
84
+ })
85
+ .then((all: Array<any>) => {
86
+ if (all.length) {
87
+ this.dataContainer = all[0];
88
+ this.cards = this.dataContainer.cards;
89
+ this.goUp();
90
+ console.log('this.cards', this.cards);
91
+ }
92
+ if (refresher) refresher.complete();
93
+ })
94
+ .catch(err => {
95
+ alert(JSON.stringify(err));
96
+ if (refresher) {
97
+ refresher.complete();
98
+ }
99
+ });
100
+ }
101
+
102
+
103
+ cardTapped($event, $index, card: Card) {
104
+ this.cardSelected = $index + 1;
105
+ if (!$index) this.cardSelected = this.cards.indexOf(card) + 1;
106
+ }
107
+
108
+
109
+ goUp() {
110
+ this.cardSelected = 0;
111
+ }
112
+
113
+ add(cardS, story) {
114
+ const selectedCard = this.cards[cardS - 1];
115
+ selectedCard.comments.push(story);
116
+ console.log(this.dataContainer);
117
+ this.fidjService.put(this.dataContainer);
118
+ }
119
+
120
+ remove(cardS, index) {
121
+ const selectedCard = this.cards[cardS - 1];
122
+ selectedCard.comments.splice(index, 1);
123
+ this.fidjService.put(this.dataContainer);
124
+ }
125
+
126
+ }
@@ -0,0 +1,56 @@
1
+ <ion-content padding>
2
+
3
+
4
+ <ion-grid>
5
+ <ion-row justify-content-center>
6
+ <ion-col col-md-8>
7
+ <ion-card style="background-color:transparent">
8
+ <ion-card-header style="color:white;">
9
+ <h1 style="color:white; text-align: center"><%= appName %></h1>
10
+ <ul>
11
+ <li>This <%= appDescription %> app helps you to exchange on feature's value with your team.</li>
12
+ <li>Estimate and show card value or cost of each item.</li>
13
+ <li>Store feature linked to value.</li>
14
+ </ul>
15
+ </ion-card-header>
16
+ <ion-card-content>
17
+
18
+ <form #heroForm="ngForm">
19
+ <ion-item>
20
+ <ion-input
21
+ type="email" placeholder="valid.email@required.com" required
22
+ [(ngModel)]="userLoginEmail" name="userLoginEmail"
23
+ pattern=".{1,}@[_a-z0-9A-Z]+(\.[a-z0-9A-Z]+)+"></ion-input>
24
+ </ion-item>
25
+ <ion-item>
26
+ <ion-input type="password" placeholder="password"
27
+ [(ngModel)]="userLoginPassword" name="userLoginPassword"
28
+ required></ion-input>
29
+ </ion-item>
30
+
31
+ <div style="padding-top:20px">
32
+ <button ion-button block
33
+ (click)="login(userLoginEmail, userLoginPassword)"
34
+ [disabled]="!userLoginEmail || !heroForm.form.valid || !userLoginPassword">
35
+ Login
36
+ </button>
37
+ <br><br>
38
+ <a ion-button block color="light" clear
39
+ href="https://fidj.ovh/forgot"
40
+ target="_blank">
41
+ Forgot your login/password ?</a>
42
+ <a ion-button block color="light" clear
43
+ (click)="loginAsDemo()">
44
+ Test as a demo user...
45
+ </a>
46
+ </div>
47
+ </form>
48
+ </ion-card-content>
49
+ </ion-card>
50
+ </ion-col>
51
+ </ion-row>
52
+ </ion-grid>
53
+
54
+ <span style="float:right;font-size:10px;" app-version>version: {{appVersion}}</span>
55
+
56
+ </ion-content>
@@ -0,0 +1,44 @@
1
+ // * {
2
+ // background-color : transparent!important;
3
+ //}
4
+
5
+ page-login {
6
+
7
+ ion-content {
8
+ background: url('../assets/imgs/login.svg') no-repeat center;
9
+ }
10
+
11
+ form > .item {
12
+ color: white !important;
13
+ // background : transparent;
14
+ background-color: rgba(255, 255, 255, 0.2);
15
+
16
+ ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
17
+ color: #414141;
18
+ }
19
+ ::-moz-placeholder { /* Firefox 19+ */
20
+ color: #414141;
21
+ }
22
+ :-ms-input-placeholder { /* IE 10+ */
23
+ color: #414141;
24
+ }
25
+ :-moz-placeholder { /* Firefox 18- */
26
+ color: #414141;
27
+ }
28
+
29
+ }
30
+
31
+ .ion-input {
32
+ // background-color : transparent;
33
+ // background-color: rgba(255, 255, 255, 0.2);
34
+ }
35
+
36
+ .item-inner {
37
+ //background-color: rgba(255, 255, 255, 0.2);
38
+ }
39
+
40
+ ion-card-header {
41
+ white-space: normal;
42
+ }
43
+
44
+ }
@@ -0,0 +1,59 @@
1
+ import {Component, OnInit} from '@angular/core';
2
+ import {NavController} from 'ionic-angular';
3
+ import {FidjService} from "fidj";
4
+ import {HomePage} from "../home/home";
5
+ import {Profile} from "../../app/shared/profile.service";
6
+ import {version} from "../../app/shared/version.const";
7
+ import {Network} from "@ionic-native/network";
8
+ import {Subscription} from "rxjs/Subscription";
9
+
10
+ @Component({
11
+ selector: 'page-login',
12
+ templateUrl: 'login.html'
13
+ })
14
+ export class LoginPage implements OnInit {
15
+
16
+ public appVersion = version;
17
+ private connected : Subscription;
18
+
19
+ constructor(public navCtrl: NavController,
20
+ private network: Network,
21
+ private profile: Profile,
22
+ private fidjService: FidjService) {
23
+
24
+ }
25
+
26
+ ngOnInit() {
27
+
28
+ if (this.fidjService.isLoggedIn()) {
29
+ this.navCtrl.setRoot(HomePage);
30
+ }
31
+ this.connected = this.network.onConnect().subscribe(data => {
32
+ console.log(data);
33
+ if (this.fidjService.isLoggedIn()) {
34
+ this.navCtrl.setRoot(HomePage);
35
+ }
36
+ }, error => console.error(error));
37
+ }
38
+
39
+ login(email, pwd) {
40
+ this.profile.setEmail(email);
41
+ this.fidjService.login(email, pwd)
42
+ .then(() => {
43
+ this.profile.setRoles(this.fidjService.getRoles());
44
+ this.navCtrl.setRoot(HomePage);
45
+ })
46
+ .catch(err => alert(JSON.stringify(err)));
47
+ }
48
+
49
+ loginAsDemo() {
50
+ this.profile.setEmail('demo user');
51
+ this.fidjService.loginAsDemo()
52
+ .then(() => {
53
+ this.navCtrl.setRoot(HomePage);
54
+ })
55
+ .catch(err => alert(JSON.stringify(err)));
56
+
57
+ }
58
+
59
+ }
@@ -0,0 +1,33 @@
1
+ <ion-header>
2
+ <ion-navbar>
3
+ <button ion-button menuToggle>
4
+ <ion-icon name="menu"></ion-icon>
5
+ </button>
6
+ <ion-title><%= appName %></ion-title>
7
+ </ion-navbar>
8
+ </ion-header>
9
+
10
+ <ion-content>
11
+ <p style="text-align:right">
12
+
13
+ <a ion-button icon-start round outline color="primary"
14
+ href="https://github.com/yourepo/<%= appName %>" target="_blank">
15
+ <ion-icon name="logo-github"></ion-icon>
16
+ Contribute<br>@{{appVersion}}
17
+ </a>
18
+
19
+ </p>
20
+ <ion-list>
21
+ <ion-item>
22
+ {{profile.getEmail()}}
23
+ </ion-item>
24
+ <ion-item *ngFor="let role of profile.getRoles()">
25
+ {{role}}
26
+ </ion-item>
27
+ </ion-list>
28
+ <p style="text-align:center">
29
+ <button ion-button color="danger" (click)="logout()">logout</button>
30
+ </p>
31
+
32
+
33
+ </ion-content>
@@ -0,0 +1,36 @@
1
+ import {Component} from '@angular/core';
2
+ import {NavController, NavParams} from 'ionic-angular';
3
+ import {FidjService} from "fidj";
4
+ import {LoginPage} from "../login/login";
5
+ import {Profile} from "../../app/shared/profile.service";
6
+ import {version} from "../../app/shared/version.const";
7
+
8
+ @Component({
9
+ selector: 'page-profile',
10
+ templateUrl: 'profile.html'
11
+ })
12
+ export class ProfilePage {
13
+
14
+ public appVersion = version;
15
+
16
+ constructor(public navCtrl: NavController,
17
+ public navParams: NavParams,
18
+ public profile: Profile,
19
+ private fidjService: FidjService) {
20
+
21
+ }
22
+
23
+ logout() {
24
+ this.fidjService.logout()
25
+ .then(() => {
26
+ this.profile.logout();
27
+ this.navCtrl.setRoot(LoginPage);
28
+ })
29
+ .catch(err => {
30
+ alert(JSON.stringify(err));
31
+ this.profile.logout();
32
+ this.navCtrl.setRoot(LoginPage);
33
+ });
34
+ }
35
+
36
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Check out https://googlechromelabs.github.io/sw-toolbox/ for
3
+ * more info on how to use sw-toolbox to custom configure your service worker.
4
+ */
5
+
6
+
7
+ 'use strict';
8
+ importScripts('./build/sw-toolbox.js');
9
+
10
+ self.toolbox.options.cache = {
11
+ name: 'app-cache'
12
+ };
13
+
14
+ // pre-cache our key assets
15
+ self.toolbox.precache(
16
+ [
17
+ './build/main.js',
18
+ './build/vendor.js',
19
+ './build/main.css',
20
+ './build/polyfills.js',
21
+ 'index.html',
22
+ 'manifest.json'
23
+ ]
24
+ );
25
+
26
+ // dynamically cache any other local assets
27
+ self.toolbox.router.any('/*', self.toolbox.fastest);
28
+
29
+ // for any other requests go to the network, cache,
30
+ // and then only use that cached resource if your user goes offline
31
+ self.toolbox.router.default = self.toolbox.networkFirst;
@@ -0,0 +1,88 @@
1
+ // Ionic Variables and Theming. For more info, please see:
2
+ // <%= appHomepage %>docs/theming/
3
+
4
+ // Font path is used to include ionicons,
5
+ // roboto, and noto sans fonts
6
+ $font-path: "../assets/fonts";
7
+
8
+
9
+ // The app direction is used to include
10
+ // rtl styles in your app. For more info, please see:
11
+ // <%= appHomepage %>docs/theming/rtl-support/
12
+ $app-direction: ltr;
13
+
14
+
15
+ @import "ionic.globals";
16
+
17
+
18
+ // Shared Variables
19
+ // --------------------------------------------------
20
+ // To customize the look and feel of this app, you can override
21
+ // the Sass variables found in Ionic's source scss files.
22
+ // To view all the possible Ionic variables, see:
23
+ // <%= appHomepage %>docs/theming/overriding-ionic-variables/
24
+
25
+
26
+
27
+
28
+ // Named Color Variables
29
+ // --------------------------------------------------
30
+ // Named colors makes it easy to reuse colors on various components.
31
+ // It's highly recommended to change the default colors
32
+ // to match your app's branding. Ionic uses a Sass map of
33
+ // colors so you can add, rename and remove colors as needed.
34
+ // The "primary" color is the only required color in the map.
35
+
36
+ $colors: (
37
+ primary: #488aff,
38
+ secondary: #32db64,
39
+ danger: #f53d3d,
40
+ light: #f4f4f4,
41
+ dark: #222
42
+ );
43
+
44
+
45
+ // App iOS Variables
46
+ // --------------------------------------------------
47
+ // iOS only Sass variables can go here
48
+
49
+
50
+
51
+
52
+ // App Material Design Variables
53
+ // --------------------------------------------------
54
+ // Material Design only Sass variables can go here
55
+
56
+
57
+
58
+
59
+ // App Windows Variables
60
+ // --------------------------------------------------
61
+ // Windows only Sass variables can go here
62
+
63
+
64
+
65
+
66
+ // App Theme
67
+ // --------------------------------------------------
68
+ // Ionic apps can have different themes applied, which can
69
+ // then be future customized. This import comes last
70
+ // so that the above variables are used and Ionic's
71
+ // default are overridden.
72
+
73
+ @import "ionic.theme.default";
74
+
75
+
76
+ // Ionicons
77
+ // --------------------------------------------------
78
+ // The premium icon font for Ionic. For more info, please see:
79
+ // <%= appHomepage %>docs/ionicons/
80
+
81
+ @import "ionic.ionicons";
82
+
83
+
84
+ // Fonts
85
+ // --------------------------------------------------
86
+
87
+ @import "roboto";
88
+ @import "noto-sans";