Ghislain Loaec 2 years ago
parent
commit
a903425f3d
100 changed files with 1012 additions and 349 deletions
  1. 0
    3
      .bowerrc
  2. 0
    14
      .editorconfig
  3. 27
    1
      .gitignore
  4. 3
    2
      LICENSE
  5. 189
    19
      README.md
  6. 0
    13
      bower.json
  7. 85
    24
      config.xml
  8. 0
    51
      gulpfile.js
  9. 0
    83
      hooks/README.md
  10. 0
    94
      hooks/after_prepare/010_add_platform_class.js
  11. 8
    2
      ionic.config.json
  12. 35
    20
      package.json
  13. BIN
      resources/android/icon/drawable-hdpi-icon.png
  14. BIN
      resources/android/icon/drawable-ldpi-icon.png
  15. BIN
      resources/android/icon/drawable-mdpi-icon.png
  16. BIN
      resources/android/icon/drawable-xhdpi-icon.png
  17. BIN
      resources/android/icon/drawable-xxhdpi-icon.png
  18. BIN
      resources/android/icon/drawable-xxxhdpi-icon.png
  19. BIN
      resources/android/splash/drawable-land-hdpi-screen.png
  20. BIN
      resources/android/splash/drawable-land-ldpi-screen.png
  21. BIN
      resources/android/splash/drawable-land-mdpi-screen.png
  22. BIN
      resources/android/splash/drawable-land-xhdpi-screen.png
  23. BIN
      resources/android/splash/drawable-land-xxhdpi-screen.png
  24. BIN
      resources/android/splash/drawable-land-xxxhdpi-screen.png
  25. BIN
      resources/android/splash/drawable-port-hdpi-screen.png
  26. BIN
      resources/android/splash/drawable-port-ldpi-screen.png
  27. BIN
      resources/android/splash/drawable-port-mdpi-screen.png
  28. BIN
      resources/android/splash/drawable-port-xhdpi-screen.png
  29. BIN
      resources/android/splash/drawable-port-xxhdpi-screen.png
  30. BIN
      resources/android/splash/drawable-port-xxxhdpi-screen.png
  31. BIN
      resources/icon.png
  32. BIN
      resources/icon.psd
  33. BIN
      resources/ios/icon/icon-40.png
  34. BIN
      resources/ios/icon/icon-40@2x.png
  35. BIN
      resources/ios/icon/icon-40@3x.png
  36. BIN
      resources/ios/icon/icon-50.png
  37. BIN
      resources/ios/icon/icon-50@2x.png
  38. BIN
      resources/ios/icon/icon-60.png
  39. BIN
      resources/ios/icon/icon-60@2x.png
  40. BIN
      resources/ios/icon/icon-60@3x.png
  41. BIN
      resources/ios/icon/icon-72.png
  42. BIN
      resources/ios/icon/icon-72@2x.png
  43. BIN
      resources/ios/icon/icon-76.png
  44. BIN
      resources/ios/icon/icon-76@2x.png
  45. BIN
      resources/ios/icon/icon-83.5@2x.png
  46. BIN
      resources/ios/icon/icon-small.png
  47. BIN
      resources/ios/icon/icon-small@2x.png
  48. BIN
      resources/ios/icon/icon-small@3x.png
  49. BIN
      resources/ios/icon/icon.png
  50. BIN
      resources/ios/icon/icon@2x.png
  51. BIN
      resources/ios/splash/Default-568h@2x~iphone.png
  52. BIN
      resources/ios/splash/Default-667h.png
  53. BIN
      resources/ios/splash/Default-736h.png
  54. BIN
      resources/ios/splash/Default-Landscape-736h.png
  55. BIN
      resources/ios/splash/Default-Landscape@2x~ipad.png
  56. BIN
      resources/ios/splash/Default-Landscape~ipad.png
  57. BIN
      resources/ios/splash/Default-Portrait@2x~ipad.png
  58. BIN
      resources/ios/splash/Default-Portrait~ipad.png
  59. BIN
      resources/ios/splash/Default@2x~iphone.png
  60. BIN
      resources/ios/splash/Default~iphone.png
  61. BIN
      resources/screenshots/AboutPage.png
  62. BIN
      resources/screenshots/AccountPage.png
  63. BIN
      resources/screenshots/LoginPage.png
  64. BIN
      resources/screenshots/MapPage.png
  65. BIN
      resources/screenshots/ScheduleFilterPage.png
  66. BIN
      resources/screenshots/SchedulePage.png
  67. BIN
      resources/screenshots/SessionDetailPage.png
  68. BIN
      resources/screenshots/SignupPage.png
  69. BIN
      resources/screenshots/SpeakerDetailPage.png
  70. BIN
      resources/screenshots/SpeakerListPage.png
  71. BIN
      resources/screenshots/TutorialPage.png
  72. 0
    23
      scss/ionic.app.scss
  73. 109
    0
      src/app/app.component.ts
  74. 73
    0
      src/app/app.module.ts
  75. 69
    0
      src/app/app.scss
  76. 44
    0
      src/app/app.template.html
  77. 5
    0
      src/app/main.ts
  78. 304
    0
      src/assets/data/data.json
  79. BIN
      src/assets/img/appicon.png
  80. 19
    0
      src/assets/img/appicon.svg
  81. BIN
      src/assets/img/ica-slidebox-img-1.png
  82. BIN
      src/assets/img/ica-slidebox-img-2.png
  83. BIN
      src/assets/img/ica-slidebox-img-3.png
  84. BIN
      src/assets/img/ica-slidebox-img-4.png
  85. 31
    0
      src/assets/img/ionic-logo-white.svg
  86. BIN
      src/assets/img/speakers/bear.jpg
  87. BIN
      src/assets/img/speakers/cheetah.jpg
  88. BIN
      src/assets/img/speakers/duck.jpg
  89. BIN
      src/assets/img/speakers/eagle.jpg
  90. BIN
      src/assets/img/speakers/elephant.jpg
  91. BIN
      src/assets/img/speakers/giraffe.jpg
  92. BIN
      src/assets/img/speakers/iguana.jpg
  93. BIN
      src/assets/img/speakers/kitten.jpg
  94. BIN
      src/assets/img/speakers/lion.jpg
  95. BIN
      src/assets/img/speakers/mouse.jpg
  96. BIN
      src/assets/img/speakers/puppy.jpg
  97. BIN
      src/assets/img/speakers/rabbit.jpg
  98. BIN
      src/assets/img/speakers/turtle.jpg
  99. 11
    0
      src/declarations.d.ts
  100. 0
    0
      src/index.html

+ 0
- 3
.bowerrc View File

@@ -1,3 +0,0 @@
1
-{
2
-  "directory": "www/lib"
3
-}

+ 0
- 14
.editorconfig View File

@@ -1,14 +0,0 @@
1
-# http://editorconfig.org
2
-root = true
3
-
4
-[*]
5
-charset = utf-8
6
-indent_style = space
7
-indent_size = 2
8
-end_of_line = lf
9
-insert_final_newline = true
10
-trim_trailing_whitespace = true
11
-
12
-[*.md]
13
-insert_final_newline = false
14
-trim_trailing_whitespace = false

+ 27
- 1
.gitignore View File

@@ -1,7 +1,33 @@
1 1
 # Specifies intentionally untracked files to ignore when using Git
2 2
 # http://git-scm.com/docs/gitignore
3 3
 
4
+*~
5
+*.sw[mnpcod]
6
+*.log
7
+*.tmp
8
+*.tmp.*
9
+log.txt
10
+*.sublime-project
11
+*.sublime-workspace
12
+.vscode/
13
+npm-debug.log*
14
+
15
+.idea/
16
+.sass-cache/
17
+.tmp/
18
+.versions/
19
+coverage/
20
+dist/
4 21
 node_modules/
22
+tmp/
23
+temp/
24
+hooks/
5 25
 platforms/
6 26
 plugins/
7
-SECRETS.md
27
+plugins/android.json
28
+plugins/ios.json
29
+$RECYCLE.BIN/
30
+
31
+.DS_Store
32
+Thumbs.db
33
+UserInterfaceState.xcuserstate

www/lib/ngcordova-wrapper-nativestorage/LICENSE.md → LICENSE View File

@@ -1,3 +1,4 @@
1
+
1 2
                                  Apache License
2 3
                            Version 2.0, January 2004
3 4
                         http://www.apache.org/licenses/
@@ -178,7 +179,7 @@
178 179
    APPENDIX: How to apply the Apache License to your work.
179 180
 
180 181
       To apply the Apache License to your work, attach the following
181
-      boilerplate notice, with the fields enclosed by brackets "{}"
182
+      boilerplate notice, with the fields enclosed by brackets "[]"
182 183
       replaced with your own identifying information. (Don't include
183 184
       the brackets!)  The text should be enclosed in the appropriate
184 185
       comment syntax for the file format. We also recommend that a
@@ -186,7 +187,7 @@
186 187
       same "printed page" as the copyright notice for easier
187 188
       identification within third-party archives.
188 189
 
189
-   Copyright {yyyy} {name of copyright owner}
190
+   Copyright 2015 Drifty Co.
190 191
 
191 192
    Licensed under the Apache License, Version 2.0 (the "License");
192 193
    you may not use this file except in compliance with the License.

+ 189
- 19
README.md View File

@@ -1,30 +1,200 @@
1
-# odouche
1
+# Ionic Conference Application
2 2
 
3
-## Settings
3
+This is purely a demo of Ionic with TypeScript. It is still in development.
4 4
 
5
-## Place order (order + reception)
6 5
 
7
-- fill supplier
8
-- scan/fill products
9
-    - reference (code)
10
-    - serial (n° lot)
11
-    - qte (poids)
12
-    - prix (pu)
13
-- place order
6
+## Important!
7
+**There is not an actual Ionic Conference at this time.** This project is just to show off Ionic components in a real-world application. Please go through the steps in [CONTRIBUTING.md](https://github.com/driftyco/ionic-conference-app/blob/master/.github/CONTRIBUTING.md) before submitting an issue.
14 8
 
15
-## Delivery (livraison + facture)
16 9
 
10
+## Table of Contents
11
+ - [Getting Started](#getting-started)
12
+ - [Contributing](#contributing)
13
+ - [Use Cases](#use-cases)
14
+ - [App Preview](#app-preview)
15
+ - [File Structure of App](#file-structure-of-app)
17 16
 
18 17
 
19
-# TODO
18
+## Getting Started
20 19
 
21
-- Create purchaseOrder  avec fournisseur "avigro", on devrait avoir 2
22
-  taxes.
23
-- Create purchaseOrder  avec fournisseur "cantrel", on devrait avoir 1
24
-  taxe.
20
+* Clone this repository: `git clone https://github.com/driftyco/ionic-conference-app.git`.
21
+* Want to use TypeScript? Both the `master` branch and the `typescript` branch now use TypeScript.
22
+* Run `npm install` from the project root.
23
+* Install the ionic CLI (`npm install -g ionic`)
24
+* Run `ionic serve` in a terminal from the project root.
25
+* Profit
25 26
 
27
+**Note:** Is your build slow? Update `npm` to 3.x: `npm install -g npm`.
26 28
 
27
- # Odoo interesting python :
28 29
 
29
-/opt/odoo/addons/purchase/{purchase.py, purchase_view.xml}
30
-/opt/odoo/addons/sale/{sale.py, sale_view.xml}
30
+## Contributing
31
+See [CONTRIBUTING.md](https://github.com/driftyco/ionic-conference-app/blob/master/.github/CONTRIBUTING.md) :tada::+1:
32
+
33
+
34
+## Use Cases
35
+
36
+* Action Sheet - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/speaker-list/speaker-list.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/speaker-list/speaker-list.ts) ]
37
+* Alert - [ [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
38
+* Cards - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/speaker-list/speaker-list.html) ]
39
+* Datetime - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/about/about.html) ]
40
+* Grid - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/login/login.html) ]
41
+* Inputs - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/login/login.html) ]
42
+* Items (Sliding) - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
43
+* Menu - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/app/app.template.html) |
44
+[code](https://github.com/driftyco/ionic-conference-app/blob/master/src/app/app.component.ts) ]
45
+* Modal - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule-filter/schedule-filter.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
46
+* Searchbar - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
47
+* Segment - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
48
+* Slides - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/tutorial/tutorial.html) |
49
+* Sticky headers - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.html) ]
50
+* Tabs - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/tabs/tabs.html) | [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/tabs/tabs.ts) ]
51
+* Toggle - [ [template](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule-filter/schedule-filter.html) ]
52
+[code](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/tutorial/tutorial.ts) ]
53
+* Using Angular HTTP for JSON - [ [code](https://github.com/driftyco/ionic-conference-app/blob/master/src/providers/conference-data.ts) | [usage](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.ts) ]
54
+
55
+
56
+## App Preview
57
+
58
+All app preview screenshots were taken by running `ionic serve --lab` on a retina display.
59
+
60
+- [Schedule Page](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/schedule/schedule.html)
61
+
62
+  <img src="resources/screenshots/SchedulePage.png" alt="Schedule">
63
+
64
+
65
+- [About Page](https://github.com/driftyco/ionic-conference-app/blob/master/src/pages/about/about.html)
66
+
67
+  <img src="resources/screenshots/AboutPage.png" alt="Schedule">
68
+
69
+
70
+- To see more images of the app, check out the [screenshots directory](https://github.com/driftyco/ionic-conference-app/tree/master/resources/screenshots)!
71
+
72
+
73
+## File Structure of App
74
+
75
+```
76
+ionic-conference-app/
77
+├-- .github/                            * GitHub files
78
+│   ├── CONTRIBUTING.md                 * Documentation on contributing to this repo
79
+│   └── ISSUE_TEMPLATE.md               * Template used to populate issues in this repo
80
+|
81
+|-- resources/
82
+|
83
+|-- src/
84
+|    |-- app/
85
+|    |    ├── app.component.ts
86
+|    |    └── app.module.ts
87
+|    |    └── app.template.html
88
+|    |    └── main.ts
89
+|    |
90
+|    |-- assets/
91
+|    |    ├── data/
92
+|    |    |    └── data.json
93
+|    |    |
94
+|    |    ├── fonts/
95
+|    |    |     ├── ionicons.eot
96
+|    |    |     └── ionicons.svg
97
+|    |    |     └── ionicons.ttf
98
+|    |    |     └── ionicons.woff
99
+|    |    |     └── ionicons.woff2
100
+|    |    |
101
+|    |    ├── img/
102
+|    |
103
+|    |-- pages/                          * Contains all of our pages
104
+│    │    ├── about/                     * About tab page
105
+│    │    │    ├── about.html            * AboutPage template
106
+│    │    │    └── about.ts              * AboutPage code
107
+│    │    │    └── about.scss            * AboutPage stylesheet
108
+│    │    │
109
+│    │    ├── account/                   * Account page
110
+│    │    │    ├── account.html          * AccountPage template
111
+│    │    │    └── account.ts            * AccountPage code
112
+│    │    │    └── account.scss          * AccountPage stylesheet
113
+│    │    │
114
+│    │    │── login/                     * Login page
115
+│    │    │    ├── login.html            * LoginPage template
116
+│    │    │    └── login.ts              * LoginPage code
117
+│    │    │    └── login.scss            * LoginPage stylesheet
118
+│    │    │
119
+│    │    │── map/                       * Map tab page
120
+│    │    │    ├── map.html              * MapPage template
121
+│    │    │    └── map.ts                * MapPage code
122
+│    │    │    └── map.scss              * MapPage stylesheet
123
+│    │    │
124
+│    │    │── schedule/                  * Schedule tab page
125
+│    │    │    ├── schedule.html         * SchedulePage template
126
+│    │    │    └── schedule.ts           * SchedulePage code
127
+│    │    │    └── schedule.scss         * SchedulePage stylesheet
128
+│    │    │
129
+│    │    │── schedule-filter/            * Schedule Filter page
130
+│    │    │    ├── schedule-filter.html   * ScheduleFilterPage template
131
+│    │    │    └── schedule-filter.ts     * ScheduleFilterPage code
132
+│    │    │    └── schedule-filter.scss   * ScheduleFilterPage stylesheet
133
+│    │    │
134
+│    │    │── session-detail/            * Session Detail page
135
+│    │    │    ├── session-detail.html   * SessionDetailPage template
136
+│    │    │    └── session-detail.ts     * SessionDetailPage code
137
+│    │    │
138
+│    │    │── signup/                    * Signup page
139
+│    │    │    ├── signup.html           * SignupPage template
140
+│    │    │    └── signup.ts             * SignupPage code
141
+│    │    │
142
+│    │    │── speaker-detail/            * Speaker Detail page
143
+│    │    │    ├── speaker-detail.html   * SpeakerDetailPage template
144
+│    │    │    └── speaker-detail.ts     * SpeakerDetailPage code
145
+│    │    │    └── speaker-detail.scss   * SpeakerDetailPage stylesheet
146
+│    │    │
147
+│    │    │── speaker-list/              * Speakers tab page
148
+│    │    │    ├── speaker-list.html     * SpeakerListPage template
149
+│    │    │    └── speaker-list.ts       * SpeakerListPage code
150
+│    │    │    └── speaker-list.scss     * SpeakerListPage stylesheet
151
+|    |    |
152
+│    │    │── support/                   * Support page
153
+│    │    │    ├── support.html          * SupportPage template
154
+│    │    │    └── support.ts            * SupportPage code
155
+│    │    │    └── support.scss          * SupportPage stylesheet
156
+│    │    │
157
+│    │    │── tabs/                      * Tabs page
158
+│    │    │    ├── tabs.html             * TabsPage template
159
+│    │    │    └── tabs.ts               * TabsPage code
160
+│    │    │
161
+│    │    └── tutorial/                  * Tutorial Intro page
162
+│    │         ├── tutorial.html         * TutorialPage template
163
+│    │         └── tutorial.ts           * TutorialPage code
164
+│    │         └── tutorial.scss         * TutorialPage stylesheet
165
+|    |
166
+│    ├── providers/                      * Contains all Injectables
167
+│    │     ├── conference-data.ts        * ConferenceData code
168
+│    │     └── user-data.ts              * UserData code
169
+│    ├── theme/                          * App theme files
170
+|    |     ├── variables.scss            * App Shared Sass Variables
171
+|    |
172
+|    |-- index.html
173
+|
174
+|-- www/
175
+|    ├── assets/
176
+|    |    ├── data/
177
+|    |    |    └── data.json
178
+|    |    |
179
+|    |    ├── fonts/
180
+|    |    |     ├── ionicons.eot
181
+|    |    |     └── ionicons.svg
182
+|    |    |     └── ionicons.ttf
183
+|    |    |     └── ionicons.woff
184
+|    |    |     └── ionicons.woff2
185
+|    |    |
186
+|    |    ├── img/
187
+|    |
188
+|    └── build/
189
+|    └── index.html
190
+|
191
+├── .editorconfig                       * Defines coding styles between editors
192
+├── .gitignore                          * Example git ignore file
193
+├── LICENSE                             * Apache License
194
+├── README.md                           * This file
195
+├── config.xml                          * Cordova configuration file
196
+├── ionic.config.json                   * Ionic configuration file
197
+├── package.json                        * Defines our JavaScript dependencies
198
+├── tsconfig.json                       * Defines the root files and the compiler options
199
+├── tslint.json                         * Defines the rules for the TypeScript linter
200
+```

+ 0
- 13
bower.json View File

@@ -1,13 +0,0 @@
1
-{
2
-  "name": "Odouche",
3
-  "private": "true",
4
-  "devDependencies": {
5
-    "ionic": "driftyco/ionic-bower#1.3.3",
6
-    "angularjs-json-rpc": "^1.0.1",
7
-    "ngcordova-wrapper-nativestorage": "git://github.com/TheCocoaProject/ngcordova-wrapper-nativestorage",
8
-    "angular-xmlrpc": "^1.1.1"
9
-  },
10
-  "dependencies": {
11
-    "ionic-toast": "^0.4.1"
12
-  }
13
-}

+ 85
- 24
config.xml View File

@@ -1,38 +1,32 @@
1 1
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
-<widget id="com.ionicframework.odouche167686" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
3
-  <name>odouche</name>
2
+<widget id="io.ionic.conferenceapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
3
+  <name>Ionic Conference</name>
4 4
   <description>
5
-        An application to use bar scanner with Odoo
6
-    </description>
7
-  <author email="gloaec@cadoles.com" href="http://cadoles.com">
8
-      Ghislain Loaec
9
-    </author>
5
+        An Ionic Framework application for the Ionic Conference.
6
+  </description>
7
+  <author email="hi@ionicframework" href="http://ionicframework.com/">
8
+      Ionic Framework Team
9
+  </author>
10 10
   <content src="index.html"/>
11 11
   <access origin="*"/>
12
-  <preference name="webviewbounce" value="false"/>
13
-  <preference name="UIWebViewBounce" value="false"/>
14
-  <preference name="DisallowOverscroll" value="true"/>
15
-  <preference name="SplashScreenDelay" value="2000"/>
16
-  <preference name="FadeSplashScreenDuration" value="2000"/>
17
-  <preference name="android-minSdkVersion" value="16"/>
18
-  <preference name="BackupWebStorage" value="none"/>
19
-  <preference name="SplashScreen" value="screen"/>
20
-  <feature name="StatusBar">
21
-    <param name="ios-package" value="CDVStatusBar" onload="true"/>
22
-  </feature>
12
+  <allow-intent href="http://*/*"/>
13
+  <allow-intent href="https://*/*"/>
14
+  <allow-intent href="tel:*"/>
15
+  <allow-intent href="sms:*"/>
16
+  <allow-intent href="mailto:*"/>
17
+  <allow-intent href="geo:*"/>
18
+  <allow-navigation href="http://*/*"/>
19
+  <allow-navigation href="tel:*"/>
20
+  <allow-navigation href="mailto:*"/>
23 21
   <platform name="android">
22
+    <allow-intent href="market:*"/>
24 23
     <icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
25 24
     <icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
26 25
     <icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
27 26
     <icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
28 27
     <icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
29 28
     <icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
30
-    <splash src="resources/android/splash/drawable-land-ldpi-screen.png" density="land-ldpi"/>
31
-    <splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/>
32
-    <splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/>
33
-    <splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/>
34
-    <splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/>
35
-    <splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" density="land-xxxhdpi"/>
29
+    <icon src="resources/android/icon/drawable-xhdpi-icon.png"/>
36 30
     <splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/>
37 31
     <splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/>
38 32
     <splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/>
@@ -40,4 +34,71 @@
40 34
     <splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/>
41 35
     <splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/>
42 36
   </platform>
37
+  <platform name="ios">
38
+    <allow-intent href="itms:*"/>
39
+    <allow-intent href="itms-apps:*"/>
40
+    <preference name="orientation" value="default"/>
41
+    <icon src="resources/ios/icon/icon.png" width="57" height="57"/>
42
+    <icon src="resources/ios/icon/icon@2x.png" width="114" height="114"/>
43
+    <icon src="resources/ios/icon/icon-40.png" width="40" height="40"/>
44
+    <icon src="resources/ios/icon/icon-40@2x.png" width="80" height="80"/>
45
+    <icon src="resources/ios/icon/icon-40@3x.png" width="120" height="120"/>
46
+    <icon src="resources/ios/icon/icon-50.png" width="50" height="50"/>
47
+    <icon src="resources/ios/icon/icon-50@2x.png" width="100" height="100"/>
48
+    <icon src="resources/ios/icon/icon-60.png" width="60" height="60"/>
49
+    <icon src="resources/ios/icon/icon-60@2x.png" width="120" height="120"/>
50
+    <icon src="resources/ios/icon/icon-60@3x.png" width="180" height="180"/>
51
+    <icon src="resources/ios/icon/icon-72.png" width="72" height="72"/>
52
+    <icon src="resources/ios/icon/icon-72@2x.png" width="144" height="144"/>
53
+    <icon src="resources/ios/icon/icon-76.png" width="76" height="76"/>
54
+    <icon src="resources/ios/icon/icon-76@2x.png" width="152" height="152"/>
55
+    <icon src="resources/ios/icon/icon-83.5@2x.png" width="167" height="167"/>
56
+    <icon src="resources/ios/icon/icon-small.png" width="29" height="29"/>
57
+    <icon src="resources/ios/icon/icon-small@2x.png" width="58" height="58"/>
58
+    <icon src="resources/ios/icon/icon-small@3x.png" width="87" height="87"/>
59
+    <splash src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" height="1136"/>
60
+    <splash src="resources/ios/splash/Default-667h.png" width="750" height="1334"/>
61
+    <splash src="resources/ios/splash/Default-736h.png" width="1242" height="2208"/>
62
+    <splash src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
63
+    <splash src="resources/ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/>
64
+    <splash src="resources/ios/splash/Default@2x~iphone.png" width="640" height="960"/>
65
+    <splash src="resources/ios/splash/Default~iphone.png" width="320" height="480"/>
66
+  </platform>
67
+  <preference name="webviewbounce" value="false"/>
68
+  <preference name="UIWebViewBounce" value="false"/>
69
+  <preference name="DisallowOverscroll" value="true"/>
70
+  <preference name="android-minSdkVersion" value="16"/>
71
+  <preference name="BackupWebStorage" value="none"/>
72
+  <preference name="StatusBarStyle" value="default" />
73
+  <preference name="SplashScreen" value="screen"/>
74
+  <preference name="orientation" value="default"/>
75
+  <preference name="SplashMaintainAspectRatio" value="true"/>
76
+  <preference name="FadeSplashScreenDuration" value="300"/>
77
+  <preference name="ShowSplashScreenSpinner" value="false"/>
78
+  <preference name="AutoHideSplashScreen" value="false"/>
79
+  <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine"/>
80
+  <preference name="SplashScreenDelay" value="3000"/>
81
+  <feature name="StatusBar">
82
+    <param name="ios-package" onload="true" value="CDVStatusBar"/>
83
+  </feature>
84
+  <feature name="CDVWKWebViewEngine">
85
+    <param name="ios-package" value="CDVWKWebViewEngine"/>
86
+  </feature>
87
+  <plugin name="cordova-plugin-inappbrowser" spec="~1.4.0"/>
88
+  <plugin name="cordova-plugin-wkwebview-engine" spec="https://github.com/driftyco/cordova-plugin-wkwebview-engine.git"/>
89
+  <plugin name="ionic-plugin-keyboard" spec="~2.2.1"/>
90
+  <plugin name="cordova-plugin-whitelist" spec="1.3.1"/>
91
+  <plugin name="cordova-plugin-console" spec="1.0.5"/>
92
+  <plugin name="cordova-plugin-statusbar" spec="2.2.1"/>
93
+  <plugin name="cordova-plugin-device" spec="1.1.4"/>
94
+  <plugin name="cordova-plugin-crosswalk-webview" spec="~2.2.0">
95
+    <variable name="XWALK_VERSION" value="22+"/>
96
+    <variable name="XWALK_LITEVERSION" value="xwalk_core_library_canary:17+"/>
97
+    <variable name="XWALK_COMMANDLINE" value="--disable-pull-to-refresh-effect"/>
98
+    <variable name="XWALK_MODE" value="embedded"/>
99
+    <variable name="XWALK_MULTIPLEAPK" value="true"/>
100
+  </plugin>
101
+  <plugin name="cordova-plugin-splashscreen" spec="~4.0.1"/>
102
+  <engine name="ios" spec="4.3.1"/>
103
+  <engine name="android" spec="6.1.0"/>
43 104
 </widget>

+ 0
- 51
gulpfile.js View File

@@ -1,51 +0,0 @@
1
-var gulp = require('gulp');
2
-var gutil = require('gulp-util');
3
-var bower = require('bower');
4
-var concat = require('gulp-concat');
5
-var sass = require('gulp-sass');
6
-var minifyCss = require('gulp-minify-css');
7
-var rename = require('gulp-rename');
8
-var sh = require('shelljs');
9
-
10
-var paths = {
11
-  sass: ['./scss/**/*.scss']
12
-};
13
-
14
-gulp.task('default', ['sass']);
15
-
16
-gulp.task('sass', function(done) {
17
-  gulp.src('./scss/ionic.app.scss')
18
-    .pipe(sass())
19
-    .on('error', sass.logError)
20
-    .pipe(gulp.dest('./www/css/'))
21
-    .pipe(minifyCss({
22
-      keepSpecialComments: 0
23
-    }))
24
-    .pipe(rename({ extname: '.min.css' }))
25
-    .pipe(gulp.dest('./www/css/'))
26
-    .on('end', done);
27
-});
28
-
29
-gulp.task('watch', ['sass'], function() {
30
-  gulp.watch(paths.sass, ['sass']);
31
-});
32
-
33
-gulp.task('install', ['git-check'], function() {
34
-  return bower.commands.install()
35
-    .on('log', function(data) {
36
-      gutil.log('bower', gutil.colors.cyan(data.id), data.message);
37
-    });
38
-});
39
-
40
-gulp.task('git-check', function(done) {
41
-  if (!sh.which('git')) {
42
-    console.log(
43
-      '  ' + gutil.colors.red('Git is not installed.'),
44
-      '\n  Git, the version control system, is required to download Ionic.',
45
-      '\n  Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.',
46
-      '\n  Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
47
-    );
48
-    process.exit(1);
49
-  }
50
-  done();
51
-});

+ 0
- 83
hooks/README.md View File

@@ -1,83 +0,0 @@
1
-<!--
2
-#
3
-# Licensed to the Apache Software Foundation (ASF) under one
4
-# or more contributor license agreements.  See the NOTICE file
5
-# distributed with this work for additional information
6
-# regarding copyright ownership.  The ASF licenses this file
7
-# to you under the Apache License, Version 2.0 (the
8
-# "License"); you may not use this file except in compliance
9
-# with the License.  You may obtain a copy of the License at
10
-#
11
-# http://www.apache.org/licenses/LICENSE-2.0
12
-#
13
-# Unless required by applicable law or agreed to in writing,
14
-# software distributed under the License is distributed on an
15
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
-#  KIND, either express or implied.  See the License for the
17
-# specific language governing permissions and limitations
18
-# under the License.
19
-#
20
--->
21
-# Cordova Hooks
22
-
23
-This directory may contain scripts used to customize cordova commands. This
24
-directory used to exist at `.cordova/hooks`, but has now been moved to the
25
-project root. Any scripts you add to these directories will be executed before
26
-and after the commands corresponding to the directory name. Useful for
27
-integrating your own build systems or integrating with version control systems.
28
-
29
-__Remember__: Make your scripts executable.
30
-
31
-## Hook Directories
32
-The following subdirectories will be used for hooks:
33
-
34
-    after_build/
35
-    after_compile/
36
-    after_docs/
37
-    after_emulate/
38
-    after_platform_add/
39
-    after_platform_rm/
40
-    after_platform_ls/
41
-    after_plugin_add/
42
-    after_plugin_ls/
43
-    after_plugin_rm/
44
-    after_plugin_search/
45
-    after_prepare/
46
-    after_run/
47
-    after_serve/
48
-    before_build/
49
-    before_compile/
50
-    before_docs/
51
-    before_emulate/
52
-    before_platform_add/
53
-    before_platform_rm/
54
-    before_platform_ls/
55
-    before_plugin_add/
56
-    before_plugin_ls/
57
-    before_plugin_rm/
58
-    before_plugin_search/
59
-    before_prepare/
60
-    before_run/
61
-    before_serve/
62
-    pre_package/ <-- Windows 8 and Windows Phone only.
63
-
64
-## Script Interface
65
-
66
-All scripts are run from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables:
67
-
68
-* CORDOVA_VERSION - The version of the Cordova-CLI.
69
-* CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios).
70
-* CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer)
71
-* CORDOVA_HOOK - Path to the hook that is being executed.
72
-* CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate)
73
-
74
-If a script returns a non-zero exit code, then the parent cordova command will be aborted.
75
-
76
-
77
-## Writing hooks
78
-
79
-We highly recommend writting your hooks using Node.js so that they are
80
-cross-platform. Some good examples are shown here:
81
-
82
-[http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/)
83
-

+ 0
- 94
hooks/after_prepare/010_add_platform_class.js View File

@@ -1,94 +0,0 @@
1
-#!/usr/bin/env node
2
-
3
-// Add Platform Class
4
-// v1.0
5
-// Automatically adds the platform class to the body tag
6
-// after the `prepare` command. By placing the platform CSS classes
7
-// directly in the HTML built for the platform, it speeds up
8
-// rendering the correct layout/style for the specific platform
9
-// instead of waiting for the JS to figure out the correct classes.
10
-
11
-var fs = require('fs');
12
-var path = require('path');
13
-
14
-var rootdir = process.argv[2];
15
-
16
-function addPlatformBodyTag(indexPath, platform) {
17
-  // add the platform class to the body tag
18
-  try {
19
-    var platformClass = 'platform-' + platform;
20
-    var cordovaClass = 'platform-cordova platform-webview';
21
-
22
-    var html = fs.readFileSync(indexPath, 'utf8');
23
-
24
-    var bodyTag = findBodyTag(html);
25
-    if(!bodyTag) return; // no opening body tag, something's wrong
26
-
27
-    if(bodyTag.indexOf(platformClass) > -1) return; // already added
28
-
29
-    var newBodyTag = bodyTag;
30
-
31
-    var classAttr = findClassAttr(bodyTag);
32
-    if(classAttr) {
33
-      // body tag has existing class attribute, add the classname
34
-      var endingQuote = classAttr.substring(classAttr.length-1);
35
-      var newClassAttr = classAttr.substring(0, classAttr.length-1);
36
-      newClassAttr += ' ' + platformClass + ' ' + cordovaClass + endingQuote;
37
-      newBodyTag = bodyTag.replace(classAttr, newClassAttr);
38
-
39
-    } else {
40
-      // add class attribute to the body tag
41
-      newBodyTag = bodyTag.replace('>', ' class="' + platformClass + ' ' + cordovaClass + '">');
42
-    }
43
-
44
-    html = html.replace(bodyTag, newBodyTag);
45
-
46
-    fs.writeFileSync(indexPath, html, 'utf8');
47
-
48
-    process.stdout.write('add to body class: ' + platformClass + '\n');
49
-  } catch(e) {
50
-    process.stdout.write(e);
51
-  }
52
-}
53
-
54
-function findBodyTag(html) {
55
-  // get the body tag
56
-  try{
57
-    return html.match(/<body(?=[\s>])(.*?)>/gi)[0];
58
-  }catch(e){}
59
-}
60
-
61
-function findClassAttr(bodyTag) {
62
-  // get the body tag's class attribute
63
-  try{
64
-    return bodyTag.match(/ class=["|'](.*?)["|']/gi)[0];
65
-  }catch(e){}
66
-}
67
-
68
-if (rootdir) {
69
-
70
-  // go through each of the platform directories that have been prepared
71
-  var platforms = (process.env.CORDOVA_PLATFORMS ? process.env.CORDOVA_PLATFORMS.split(',') : []);
72
-
73
-  for(var x=0; x<platforms.length; x++) {
74
-    // open up the index.html file at the www root
75
-    try {
76
-      var platform = platforms[x].trim().toLowerCase();
77
-      var indexPath;
78
-
79
-      if(platform == 'android') {
80
-        indexPath = path.join('platforms', platform, 'assets', 'www', 'index.html');
81
-      } else {
82
-        indexPath = path.join('platforms', platform, 'www', 'index.html');
83
-      }
84
-
85
-      if(fs.existsSync(indexPath)) {
86
-        addPlatformBodyTag(indexPath, platform);
87
-      }
88
-
89
-    } catch(e) {
90
-      process.stdout.write(e);
91
-    }
92
-  }
93
-
94
-}

+ 8
- 2
ionic.config.json View File

@@ -1,10 +1,16 @@
1 1
 {
2
-  "name": "odouche",
3
-  "app_id": "d30040f9",
2
+  "name": "ionic-conference-app",
3
+  "app_id": "",
4
+  "typescript": true,
5
+  "v2": true,
4 6
   "proxies": [
5 7
     {
6 8
       "path": "/xmlrpc",
7 9
       "proxyUrl": "http://localhost:8069/xmlrpc"
10
+    },
11
+    {
12
+      "path": "/web/session",
13
+      "proxyUrl": "http://localhost:8069/web/session"
8 14
     }
9 15
   ]
10 16
 }

+ 35
- 20
package.json View File

@@ -1,26 +1,41 @@
1 1
 {
2
-  "name": "odouche",
3
-  "version": "1.1.1",
4
-  "description": "odouche: An Ionic project",
2
+  "name": "ODouche",
3
+  "description": "Manage your orders and stocks in oddo from your smarphone",
4
+  "license": "GPLv3",
5
+  "repository": {
6
+    "type": "git",
7
+    "url": "https://github.com/driftyco/ionic-conference-app.git"
8
+  },
9
+  "scripts": {
10
+    "build": "ionic-app-scripts build",
11
+    "clean": "ionic-app-scripts clean",
12
+    "ionic:build": "ionic-app-scripts build",
13
+    "ionic:serve": "ionic-app-scripts serve"
14
+  },
5 15
   "dependencies": {
6
-    "gulp": "^3.5.6",
7
-    "gulp-concat": "^2.2.0",
8
-    "gulp-minify-css": "^0.3.0",
9
-    "gulp-rename": "^1.2.0",
10
-    "gulp-sass": "^2.0.4"
16
+    "@angular/common": "4.0.0",
17
+    "@angular/compiler": "4.0.0",
18
+    "@angular/compiler-cli": "4.0.0",
19
+    "@angular/core": "4.0.0",
20
+    "@angular/forms": "4.0.0",
21
+    "@angular/http": "4.0.0",
22
+    "@angular/platform-browser": "4.0.0",
23
+    "@angular/platform-browser-dynamic": "4.0.0",
24
+    "@ionic-native/core": "3.4.2",
25
+    "@ionic-native/in-app-browser": "3.4.2",
26
+    "@ionic-native/splash-screen": "3.4.2",
27
+    "@ionic-native/status-bar": "3.4.2",
28
+    "@ionic/storage": "2.0.1",
29
+    "angular2-odoo-jsonrpc": "0.0.7",
30
+    "ionic-angular": "3.0.1",
31
+    "ionicons": "3.0.0",
32
+    "rxjs": "5.1.1",
33
+    "sw-toolbox": "3.4.0",
34
+    "zone.js": "^0.8.4"
11 35
   },
12 36
   "devDependencies": {
13
-    "bower": "^1.3.3",
14
-    "gulp-util": "^2.2.14",
15
-    "shelljs": "^0.3.0"
37
+    "@ionic/app-scripts": "1.2.4",
38
+    "typescript": "~2.2.1"
16 39
   },
17
-  "cordovaPlugins": [
18
-    "ionic-plugin-keyboard",
19
-    "cordova-plugin-whitelist",
20
-    "cordova-plugin-console",
21
-    "cordova-plugin-statusbar",
22
-    "cordova-plugin-device",
23
-    "cordova-plugin-splashscreen"
24
-  ],
25
-  "cordovaPlatforms": []
40
+  "config": {}
26 41
 }

BIN
resources/android/icon/drawable-hdpi-icon.png View File


BIN
resources/android/icon/drawable-ldpi-icon.png View File


BIN
resources/android/icon/drawable-mdpi-icon.png View File


BIN
resources/android/icon/drawable-xhdpi-icon.png View File


BIN
resources/android/icon/drawable-xxhdpi-icon.png View File


BIN
resources/android/icon/drawable-xxxhdpi-icon.png View File


BIN
resources/android/splash/drawable-land-hdpi-screen.png View File


BIN
resources/android/splash/drawable-land-ldpi-screen.png View File


BIN
resources/android/splash/drawable-land-mdpi-screen.png View File


BIN
resources/android/splash/drawable-land-xhdpi-screen.png View File


BIN
resources/android/splash/drawable-land-xxhdpi-screen.png View File


BIN
resources/android/splash/drawable-land-xxxhdpi-screen.png View File


BIN
resources/android/splash/drawable-port-hdpi-screen.png View File


BIN
resources/android/splash/drawable-port-ldpi-screen.png View File


BIN
resources/android/splash/drawable-port-mdpi-screen.png View File


BIN
resources/android/splash/drawable-port-xhdpi-screen.png View File


BIN
resources/android/splash/drawable-port-xxhdpi-screen.png View File


BIN
resources/android/splash/drawable-port-xxxhdpi-screen.png View File


BIN
resources/icon.png View File


BIN
resources/icon.psd View File


BIN
resources/ios/icon/icon-40.png View File


BIN
resources/ios/icon/icon-40@2x.png View File


BIN
resources/ios/icon/icon-40@3x.png View File


BIN
resources/ios/icon/icon-50.png View File


BIN
resources/ios/icon/icon-50@2x.png View File


BIN
resources/ios/icon/icon-60.png View File


BIN
resources/ios/icon/icon-60@2x.png View File


BIN
resources/ios/icon/icon-60@3x.png View File


BIN
resources/ios/icon/icon-72.png View File


BIN
resources/ios/icon/icon-72@2x.png View File


BIN
resources/ios/icon/icon-76.png View File


BIN
resources/ios/icon/icon-76@2x.png View File


BIN
resources/ios/icon/icon-83.5@2x.png View File


BIN
resources/ios/icon/icon-small.png View File


BIN
resources/ios/icon/icon-small@2x.png View File


BIN
resources/ios/icon/icon-small@3x.png View File


BIN
resources/ios/icon/icon.png View File


BIN
resources/ios/icon/icon@2x.png View File


BIN
resources/ios/splash/Default-568h@2x~iphone.png View File


BIN
resources/ios/splash/Default-667h.png View File


BIN
resources/ios/splash/Default-736h.png View File


BIN
resources/ios/splash/Default-Landscape-736h.png View File


BIN
resources/ios/splash/Default-Landscape@2x~ipad.png View File


BIN
resources/ios/splash/Default-Landscape~ipad.png View File


BIN
resources/ios/splash/Default-Portrait@2x~ipad.png View File


BIN
resources/ios/splash/Default-Portrait~ipad.png View File


BIN
resources/ios/splash/Default@2x~iphone.png View File


BIN
resources/ios/splash/Default~iphone.png View File


BIN
resources/screenshots/AboutPage.png View File


BIN
resources/screenshots/AccountPage.png View File


BIN
resources/screenshots/LoginPage.png View File


BIN
resources/screenshots/MapPage.png View File


BIN
resources/screenshots/ScheduleFilterPage.png View File


BIN
resources/screenshots/SchedulePage.png View File


BIN
resources/screenshots/SessionDetailPage.png View File


BIN
resources/screenshots/SignupPage.png View File


BIN
resources/screenshots/SpeakerDetailPage.png View File


BIN
resources/screenshots/SpeakerListPage.png View File


BIN
resources/screenshots/TutorialPage.png View File


+ 0
- 23
scss/ionic.app.scss View File

@@ -1,23 +0,0 @@
1
-/*
2
-To customize the look and feel of Ionic, you can override the variables
3
-in ionic's _variables.scss file.
4
-
5
-For example, you might change some of the default colors:
6
-
7
-$light:                           #fff !default;
8
-$stable:                          #f8f8f8 !default;
9
-$positive:                        #387ef5 !default;
10
-$calm:                            #11c1f3 !default;
11
-$balanced:                        #33cd5f !default;
12
-$energized:                       #ffc900 !default;
13
-$assertive:                       #ef473a !default;
14
-$royal:                           #886aea !default;
15
-$dark:                            #444 !default;
16
-*/
17
-
18
-// The path for our ionicons font files, relative to the built CSS in www/css
19
-$ionicons-font-path: "../lib/ionic/fonts" !default;
20
-
21
-// Include all of Ionic
22
-@import "www/lib/ionic/scss/ionic";
23
-

+ 109
- 0
src/app/app.component.ts View File

@@ -0,0 +1,109 @@
1
+import { Component, ViewChild } from '@angular/core';
2
+
3
+import { Events, MenuController, Nav, Platform } from 'ionic-angular';
4
+import { SplashScreen } from '@ionic-native/splash-screen';
5
+
6
+import { Storage } from '@ionic/storage';
7
+
8
+import { TutorialPage } from '../pages/tutorial/tutorial';
9
+import { PurchaseOrderListPage } from '../pages/purchase-order-list/purchase-order-list';
10
+import { SaleOrderListPage } from '../pages/sale-order-list/sale-order-list';
11
+import { SettingsPage } from '../pages/settings/settings';
12
+
13
+import { ConferenceData } from '../providers/conference-data';
14
+import { SettingsData } from '../providers/settings-data';
15
+
16
+export interface PageInterface {
17
+  title: string;
18
+  name: string;
19
+  component: any;
20
+  icon: string;
21
+  logsOut?: boolean;
22
+  index?: number;
23
+  tabName?: string;
24
+  tabComponent?: any;
25
+}
26
+
27
+@Component({
28
+  templateUrl: 'app.template.html'
29
+})
30
+export class ConferenceApp {
31
+  // the root nav is a child of the root app component
32
+  // @ViewChild(Nav) gets a reference to the app's root nav
33
+  @ViewChild(Nav) nav: Nav;
34
+
35
+  // List of pages that can be navigated to from the left menu
36
+  // the left menu only works after login
37
+  // the login page disables the left menu
38
+  appPages: PageInterface[] = [
39
+    { title: 'Commandes', name: 'PurchaseOrderList', component: PurchaseOrderListPage, icon: 'md-log-in' },
40
+    { title: 'Livraisons', name: 'PurchaseOrderList', component: SaleOrderListPage, icon: 'md-log-out' }
41
+  ];
42
+
43
+  configPages: PageInterface[] = [
44
+    { title: 'Paramètres', name: 'Settings', component: SettingsPage, icon: 'md-settings' },
45
+  ];
46
+
47
+  rootPage: any;
48
+
49
+  constructor(
50
+    public events: Events,
51
+    public settingsData: SettingsData,
52
+    public menu: MenuController,
53
+    public platform: Platform,
54
+    public confData: ConferenceData,
55
+    public storage: Storage,
56
+    public splashScreen: SplashScreen
57
+  ) {
58
+
59
+    // Check if the user has already seen the tutorial
60
+    this.storage.get('hasSeenTutorial')
61
+      .then((hasSeenTutorial) => {
62
+        if (hasSeenTutorial) {
63
+          this.rootPage = PurchaseOrderListPage;
64
+        } else {
65
+          this.rootPage = TutorialPage;
66
+        }
67
+        this.platformReady()
68
+      });
69
+
70
+    // load the conference data
71
+    confData.load();
72
+
73
+    this.listenToLoginEvents();
74
+  }
75
+
76
+  openPage(page: PageInterface) {
77
+    let params = {};
78
+
79
+    console.log(this.nav);
80
+
81
+    this.nav.setRoot(page.name, params).catch((err: any) => {
82
+      console.log(`Didn't set nav root: ${err}`);
83
+    });
84
+
85
+  }
86
+
87
+  openTutorial() {
88
+    this.nav.setRoot(TutorialPage);
89
+  }
90
+
91
+  listenToLoginEvents() {
92
+    this.events.subscribe('preferences:change', () => {
93
+    });
94
+  }
95
+
96
+  platformReady() {
97
+    // Call any initial plugins when ready
98
+    this.platform.ready().then(() => {
99
+      this.splashScreen.hide();
100
+    });
101
+  }
102
+
103
+  isActive(page: PageInterface) {
104
+    if (this.nav.getActive() && this.nav.getActive().name === page.name) {
105
+      return 'primary';
106
+    }
107
+    return;
108
+  }
109
+}

+ 73
- 0
src/app/app.module.ts View File

@@ -0,0 +1,73 @@
1
+import { BrowserModule } from '@angular/platform-browser';
2
+import { HttpModule } from '@angular/http';
3
+import { NgModule, ErrorHandler } from '@angular/core';
4
+
5
+import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
6
+
7
+import { InAppBrowser } from '@ionic-native/in-app-browser';
8
+import { SplashScreen } from '@ionic-native/splash-screen';
9
+
10
+import { IonicStorageModule } from '@ionic/storage';
11
+
12
+import { ConferenceApp } from './app.component';
13
+
14
+import { PurchaseOrderListPage } from '../pages/purchase-order-list/purchase-order-list';
15
+import { SaleOrderListPage } from '../pages/sale-order-list/sale-order-list';
16
+import { TutorialPage } from '../pages/tutorial/tutorial';
17
+import { SettingsPage } from '../pages/settings/settings';
18
+
19
+import { ConferenceData } from '../providers/conference-data';
20
+import { SettingsData } from '../providers/settings-data';
21
+import { OdooService } from '../providers/odoo-service';
22
+import { OdooRPCService } from 'angular2-odoo-jsonrpc';
23
+
24
+
25
+@NgModule({
26
+  declarations: [
27
+    ConferenceApp,
28
+    PurchaseOrderListPage,
29
+    SaleOrderListPage,
30
+    TutorialPage,
31
+    SettingsPage
32
+  ],
33
+  imports: [
34
+    BrowserModule,
35
+    HttpModule,
36
+    IonicModule.forRoot(ConferenceApp, {}, {
37
+      links: [
38
+        { component: PurchaseOrderListPage, name: 'PurchaseOrderList', segment: 'purchaseOrderList' },
39
+        { component: SaleOrderListPage, name: 'SaleOrderList', segment: 'saleOrderList' },
40
+        //{ component: SessionDetailPage, name: 'SessionDetail', segment: 'sessionDetail/:name' },
41
+        //{ component: ScheduleFilterPage, name: 'ScheduleFilter', segment: 'scheduleFilter' },
42
+        //{ component: SpeakerListPage, name: 'SpeakerList', segment: 'speakerList' },
43
+        //{ component: SpeakerDetailPage, name: 'SpeakerDetail', segment: 'speakerDetail/:name' },
44
+        //{ component: MapPage, name: 'Map', segment: 'map' },
45
+        { component: SettingsPage, name: 'Settings', segment: 'settings' },
46
+        { component: TutorialPage, name: 'Tutorial', segment: 'tutorial' }
47
+        //{ component: SupportPage, name: 'SupportPage', segment: 'support' },
48
+        //{ component: LoginPage, name: 'LoginPage', segment: 'login' },
49
+        //{ component: AccountPage, name: 'AccountPage', segment: 'account' },
50
+        //{ component: SignupPage, name: 'SignupPage', segment: 'signup' }
51
+      ]
52
+    }),
53
+    IonicStorageModule.forRoot()
54
+  ],
55
+  bootstrap: [IonicApp],
56
+  entryComponents: [
57
+    ConferenceApp,
58
+    PurchaseOrderListPage,
59
+    SaleOrderList,
60
+    TutorialPage,
61
+    SettingsPage
62
+  ],
63
+  providers: [
64
+    { provide: ErrorHandler, useClass: IonicErrorHandler },
65
+    ConferenceData,
66
+    SettingsData,
67
+    OdooService,
68
+    OdooRPCService,
69
+    InAppBrowser,
70
+    SplashScreen
71
+  ]
72
+})
73
+export class AppModule { }

+ 69
- 0
src/app/app.scss View File

@@ -0,0 +1,69 @@
1
+// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
2
+// Makes the @content apply to the given breakpoint and narrower.
3
+@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
4
+  $max: breakpoint-max($name, $breakpoints);
5
+  @if $max {
6
+    @media (max-width: $max) {
7
+      @content;
8
+    }
9
+  } @else {
10
+    @content;
11
+  }
12
+}
13
+
14
+
15
+// Name of the next breakpoint, or null for the last breakpoint.
16
+//
17
+//    >> breakpoint-next(sm)
18
+//    md
19
+//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
20
+//    md
21
+//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
22
+//    md
23
+@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
24
+  $n: index($breakpoint-names, $name);
25
+  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
26
+}
27
+
28
+
29
+// Maximum breakpoint width. Null for the largest (last) breakpoint.
30
+// The maximum value is calculated as the minimum of the next one less 0.1.
31
+//
32
+//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
33
+//    767px
34
+@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
35
+  $next: breakpoint-next($name, $breakpoints);
36
+  @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
37
+}
38
+
39
+
40
+// Creates text alignment classes based on screen size
41
+// TODO this would be nice to add to the framework
42
+@each $breakpoint in map-keys($grid-breakpoints) {
43
+  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
44
+
45
+  @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
46
+    // Provide text `[text-{bp}]` attributes for aligning text based on screen size
47
+    [text#{$infix}-center] {
48
+      text-align: center;
49
+    }
50
+
51
+    [text#{$infix}-left] {
52
+      text-align: left;
53
+    }
54
+
55
+    [text#{$infix}-right] {
56
+      text-align: right;
57
+    }
58
+
59
+    [hidden#{$infix}-up] {
60
+      display: none;
61
+    }
62
+  }
63
+
64
+  @include media-breakpoint-down($breakpoint, $grid-breakpoints) {
65
+    [hidden#{$infix}-down] {
66
+      display: none;
67
+    }
68
+  }
69
+}

+ 44
- 0
src/app/app.template.html View File

@@ -0,0 +1,44 @@
1
+<ion-split-pane>
2
+
3
+  <!-- logged out menu -->
4
+  <ion-menu id="menu" [content]="content">
5
+
6
+    <ion-header>
7
+      <ion-toolbar color="light">
8
+        <ion-title><span class="odoo">O</span>Douche</ion-title>
9
+      </ion-toolbar>
10
+    </ion-header>
11
+
12
+    <ion-content class="outer-content">
13
+
14
+      <ion-list>
15
+        <ion-list-header>
16
+          Navigation
17
+        </ion-list-header>
18
+        <button ion-item menuClose *ngFor="let p of appPages" (click)="openPage(p)">
19
+          <ion-icon item-left [name]="p.icon" [color]="isActive(p)"></ion-icon>
20
+          {{p.title}}
21
+        </button>
22
+      </ion-list>
23
+
24
+      <ion-list>
25
+        <ion-list-header>
26
+          Configuration
27
+        </ion-list-header>
28
+        <button ion-item menuClose *ngFor="let p of configPages" (click)="openPage(p)">
29
+          <ion-icon item-left [name]="p.icon" [color]="isActive(p)"></ion-icon>
30
+          {{p.title}}
31
+        </button>
32
+        <button ion-item menuClose (click)="openTutorial()">
33
+          <ion-icon item-left name="ios-help-buoy"></ion-icon>
34
+          Aide
35
+        </button>
36
+      </ion-list>
37
+    </ion-content>
38
+
39
+  </ion-menu>
40
+
41
+  <!-- main navigation -->
42
+  <ion-nav [root]="rootPage" #content swipeBackEnabled="false" main></ion-nav>
43
+
44
+</ion-split-pane>

+ 5
- 0
src/app/main.ts View File

@@ -0,0 +1,5 @@
1
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2
+
3
+import { AppModule } from './app.module';
4
+
5
+platformBrowserDynamic().bootstrapModule(AppModule);

+ 304
- 0
src/assets/data/data.json View File

@@ -0,0 +1,304 @@
1
+{
2
+
3
+  "schedule": [{
4
+    "date": "2047-05-17",
5
+    "groups": [{
6
+      "time": "8:00 am",
7
+      "sessions": [{
8
+        "name": "Breakfast",
9
+        "timeStart": "8:00 am",
10
+        "timeEnd": "9:00 am",
11
+        "location": "Main hallway",
12
+        "tracks": ["Food"]
13
+      }]
14
+    }, {
15
+      "time": "9:00 am",
16
+      "sessions": [{
17
+        "name": "Introduction to Appcamp.io",
18
+        "location": "Room 2203",
19
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
20
+        "speakerNames": ["Ellie Elephant"],
21
+        "timeStart": "9:00 am",
22
+        "timeEnd": "9:30 am",
23
+        "tracks": ["Ionic"]
24
+      }, {
25
+        "name": "Getting started with Ionic",
26
+        "location": "Room 2202",
27
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
28
+        "speakerNames": ["Ted Turtle"],
29
+        "timeStart": "9:30 am",
30
+        "timeEnd": "9:45 am",
31
+        "tracks": ["Ionic"]
32
+      }, {
33
+        "name": "Tooling for Ionic",
34
+        "location": "Room 2201",
35
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
36
+        "speakerNames": ["Rachel Rabbit"],
37
+        "timeStart": "9:45 am",
38
+        "timeEnd": "10:00 am",
39
+        "tracks": ["Tooling"]
40
+      }]
41
+    }, {
42
+      "time": "10:00 am",
43
+      "sessions": [{
44
+        "name": "Migrating to Ionic2",
45
+        "location": "Room 2201",
46
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
47
+        "speakerNames": ["Eva Eagle", "Lionel Lion"],
48
+        "timeStart": "10:00 am",
49
+        "timeEnd": "10:15 am",
50
+        "tracks": ["Ionic"]
51
+      }, {
52
+        "name": "The evolution of Ionicons",
53
+        "location": "Room 2202",
54
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
55
+        "speakerNames": ["Isabella Iguana", "Eva Eagle"],
56
+        "timeStart": "10:15 am",
57
+        "timeEnd": "10:30 am",
58
+        "tracks": ["Design"]
59
+      }, {
60
+        "name": "Ionic.io Services",
61
+        "location": "Room 2202",
62
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
63
+        "speakerNames": ["Charlie Cheetah"],
64
+        "timeStart": "10:30 am",
65
+        "timeEnd": "11:00 am",
66
+        "tracks": ["Services"]
67
+      }]
68
+    }, {
69
+      "time": "11:00 am",
70
+      "sessions": [{
71
+        "name": "Ionic Workshop",
72
+        "location": "Room 2201",
73
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
74
+        "speakerNames": ["Karl Kitten", "Lionel Lion"],
75
+        "timeStart": "11:00 am",
76
+        "timeEnd": "11:45 am",
77
+        "tracks": ["Workshop"]
78
+      }, {
79
+        "name": "Community Interaction",
80
+        "location": "Room 2203",
81
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
82
+        "speakerNames": ["Lionel Lion", "Gino Giraffe"],
83
+        "timeStart": "11:30 am",
84
+        "timeEnd": "11:50 am",
85
+        "tracks": ["Communication"]
86
+      }, {
87
+        "name": "Navigation in Ionic",
88
+        "location": "Room 2203",
89
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
90
+        "speakerNames": ["Rachel Rabbit", "Eva Eagle"],
91
+        "timeStart": "11:30 am",
92
+        "timeEnd": "12:00 pm",
93
+        "tracks": ["Navigation"]
94
+      }]
95
+    }, {
96
+      "time": "12:00 pm",
97
+      "sessions": [{
98
+        "name": "Lunch",
99
+        "location": "Auditorium",
100
+        "description": "Come grab lunch with all the Ionic fanatics and talk all things Ionic",
101
+        "timeStart": "12:00 pm",
102
+        "timeEnd": "1:00 pm",
103
+        "tracks": ["Food"]
104
+      }]
105
+    }, {
106
+      "time": "1:00 pm",
107
+      "sessions": [{
108
+        "name": "Ionic in the Enterprise",
109
+        "location": "Room 2201",
110
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
111
+        "speakerNames": ["Paul Puppy"],
112
+        "timeStart": "1:00 pm",
113
+        "timeEnd": "1:15 pm",
114
+        "tracks": ["Communication"]
115
+      }, {
116
+        "name": "Ionic Worldwide",
117
+        "location": "Room 2201",
118
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
119
+        "speakerNames": ["Gino Giraffe"],
120
+        "timeStart": "1:15 pm",
121
+        "timeEnd": "1:30 pm",
122
+        "tracks": ["Communication"]
123
+      }, {
124
+        "name": "The Ionic package service",
125
+        "location": "Room 2203",
126
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
127
+        "speakerNames": ["Molly Mouse", "Burt Bear"],
128
+        "timeStart": "1:30 pm",
129
+        "timeEnd": "2:00 pm",
130
+        "tracks": ["Services"]
131
+      }]
132
+    }, {
133
+      "time": "2:00 pm",
134
+      "sessions": [{
135
+        "name": "Push Notifications in Ionic",
136
+        "location": "Room 2202",
137
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
138
+        "speakerNames": ["Burt Bear", "Charlie Cheetah"],
139
+        "timeStart": "2:00 pm",
140
+        "timeEnd": "2:30 pm",
141
+        "tracks": ["Services"]
142
+      }, {
143
+        "name": "Ionic Documentation",
144
+        "location": "Room 2202",
145
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
146
+        "speakerNames": ["Donald Duck"],
147
+        "timeStart": "2:30 pm",
148
+        "timeEnd": "2:45 pm",
149
+        "tracks": ["Documentation"]
150
+      }, {
151
+        "name": "UX planning in Ionic",
152
+        "location": "Room 2203",
153
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
154
+        "speakerNames": ["Isabella Iguana", "Ellie Elephant"],
155
+        "timeStart": "2:45 pm",
156
+        "timeEnd": "3:00 pm",
157
+        "tracks": ["Design"]
158
+      }]
159
+    }, {
160
+      "time": "3:00",
161
+      "sessions": [{
162
+        "name": "Directives in Ionic",
163
+        "location": "Room 2201",
164
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
165
+        "speakerNames": ["Ted Turtle"],
166
+        "timeStart": "3:00 pm",
167
+        "timeEnd": "3:30 pm",
168
+        "tracks": ["Angular"]
169
+      }, {
170
+        "name": "Mobile States",
171
+        "location": "Room 2202",
172
+        "description": "Mobile devices and browsers are now advanced enough that developers can build native-quality mobile apps using open web technologies like HTML5, Javascript, and CSS. In this talk, we’ll provide background on why and how we created Ionic, the design decisions made as we integrated Ionic with Angular, and the performance considerations for mobile platforms that our team had to overcome. We’ll also review new and upcoming Ionic features, and talk about the hidden powers and benefits of combining mobile app development and Angular.",
173
+        "speakerNames": ["Rachel Rabbit"],
174
+        "timeStart": "3:30 pm",
175
+        "timeEnd": "3:45 pm",
176
+        "tracks": ["Navigation"]
177
+      }]
178
+    }]
179
+  }],
180
+
181
+
182
+  "speakers": [{
183
+    "name": "Burt Bear",
184
+    "profilePic": "assets/img/speakers/bear.jpg",
185
+    "twitter": "ionicframework",
186
+    "about": "Burt is a Bear.",
187
+    "location": "Everywhere",
188
+    "email": "burt@example.com",
189
+    "phone": "+1-541-754-3010"
190
+  }, {
191
+    "name": "Charlie Cheetah",
192
+    "profilePic": "assets/img/speakers/cheetah.jpg",
193
+    "twitter": "ionicframework",
194
+    "about": "Charlie is a Cheetah.",
195
+    "location": "Everywhere",
196
+    "email": "charlie@example.com",
197
+    "phone": "+1-541-754-3010"
198
+  }, {
199
+    "name": "Donald Duck",
200
+    "profilePic": "assets/img/speakers/duck.jpg",
201
+    "twitter": "ionicframework",
202
+    "about": "Donald is a Duck.",
203
+    "location": "Everywhere",
204
+    "email": "donald@example.com",
205
+    "phone": "+1-541-754-3010"
206
+  }, {
207
+    "name": "Eva Eagle",
208
+    "profilePic": "assets/img/speakers/eagle.jpg",
209
+    "twitter": "ionicframework",
210
+    "about": "Eva is an Eagle.",
211
+    "location": "Everywhere",
212
+    "email": "eva@example.com",
213
+    "phone": "+1-541-754-3010"
214
+  }, {
215
+    "name": "Ellie Elephant",
216
+    "profilePic": "assets/img/speakers/elephant.jpg",
217
+    "twitter": "ionicframework",
218
+    "about": "Ellie is an Elephant.",
219
+    "location": "Everywhere",
220
+    "email": "ellie@example.com",
221
+    "phone": "+1-541-754-3010"
222
+  }, {
223
+    "name": "Gino Giraffe",
224
+    "profilePic": "assets/img/speakers/giraffe.jpg",
225
+    "twitter": "ionicframework",
226
+    "about": "Gino is a Giraffe.",
227
+    "location": "Everywhere",
228
+    "email": "gino@example.com",
229
+    "phone": "+1-541-754-3010"
230
+  }, {
231
+    "name": "Isabella Iguana",
232
+    "profilePic": "assets/img/speakers/iguana.jpg",
233
+    "twitter": "ionicframework",
234
+    "about": "Isabella is an Iguana.",
235
+    "location": "Everywhere",
236
+    "email": "isabella@example.com",
237
+    "phone": "+1-541-754-3010"
238
+  }, {
239
+    "name": "Karl Kitten",
240
+    "profilePic": "assets/img/speakers/kitten.jpg",
241
+    "twitter": "ionicframework",
242
+    "about": "Karl is a Kitten.",
243
+    "location": "Everywhere",
244
+    "email": "karl@example.com",
245
+    "phone": "+1-541-754-3010"
246
+  }, {
247
+    "name": "Lionel Lion",
248
+    "profilePic": "assets/img/speakers/lion.jpg",
249
+    "twitter": "ionicframework",
250
+    "about": "Lionel is a Lion.",
251
+    "location": "Everywhere",
252
+    "email": "lionel@example.com",
253
+    "phone": "+1-541-754-3010"
254
+  }, {
255
+    "name": "Molly Mouse",
256
+    "profilePic": "assets/img/speakers/mouse.jpg",
257
+    "twitter": "ionicframework",
258
+    "about": "Molly is a Mouse.",
259
+    "location": "Everywhere",
260
+    "email": "molly@example.com",
261
+    "phone": "+1-541-754-3010"
262
+  }, {
263
+    "name": "Paul Puppy",
264
+    "profilePic": "assets/img/speakers/puppy.jpg",
265
+    "twitter": "ionicframework",
266
+    "about": "Paul is a Puppy.",
267
+    "location": "Everywhere",
268
+    "email": "paul@example.com",
269
+    "phone": "+1-541-754-3010"
270
+  }, {
271
+    "name": "Rachel Rabbit",
272
+    "profilePic": "assets/img/speakers/rabbit.jpg",
273
+    "twitter": "ionicframework",
274
+    "about": "Rachel is a Rabbit.",
275
+    "location": "Everywhere",
276
+    "email": "rachel@example.com",
277
+    "phone": "+1-541-754-3010"
278
+  }, {
279
+    "name": "Ted Turtle",
280
+    "profilePic": "assets/img/speakers/turtle.jpg",
281
+    "twitter": "ionicframework",
282
+    "about": "Ted is a Turtle.",
283
+    "location": "Everywhere",
284
+    "email": "ted@example.com",
285
+    "phone": "+1-541-754-3010"
286
+  }],
287
+
288
+
289
+  "map": [{
290
+    "name": "Monona Terrace Convention Center",
291
+    "lat": 43.071584,
292
+    "lng": -89.380120,
293
+    "center": true
294
+  }, {
295
+    "name": "Ionic HQ",
296
+    "lat": 43.074395,
297
+    "lng": -89.381056
298
+  }, {
299
+    "name": "Afterparty - Brocach Irish Pub",
300
+    "lat": 43.07336,
301
+    "lng": -89.38335
302
+  }]
303
+
304
+}

BIN
src/assets/img/appicon.png View File


+ 19
- 0
src/assets/img/appicon.svg View File

@@ -0,0 +1,19 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
3
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
6
+<style type="text/css">
7
+<![CDATA[
8
+	.st0{fill:#4E8EF7;}
9
+]]>
10
+</style>
11
+<g>
12
+	<path class="st0" d="M434.6,121.3c4.5-5.4,7.2-12.4,7.2-20c0-17.3-14-31.3-31.3-31.3c-7.6,0-14.5,2.7-20,7.2
13
+		C353,48.8,306.3,32,255.8,32c-123.5,0-224,100.5-224,224c0,123.5,100.5,224,224,224s224-100.5,224-224
14
+		C479.8,205.4,463,158.8,434.6,121.3z M255.8,471c-118.6,0-215-96.5-215-215c0-118.6,96.5-215,215-215c48.2,0,92.8,16,128.7,42.8
15
+		c-3.4,5-5.3,11-5.3,17.5c0,17.3,14,31.3,31.3,31.3c6.5,0,12.5-2,17.5-5.3c26.9,35.9,42.8,80.5,42.8,128.7
16
+		C470.8,374.5,374.3,471,255.8,471z"/>
17
+	<ellipse class="st0" cx="255.8" cy="256" rx="96.2" ry="96.1"/>
18
+</g>
19
+</svg>

BIN
src/assets/img/ica-slidebox-img-1.png View File


BIN
src/assets/img/ica-slidebox-img-2.png View File


BIN
src/assets/img/ica-slidebox-img-3.png View File


BIN
src/assets/img/ica-slidebox-img-4.png View File


+ 31
- 0
src/assets/img/ionic-logo-white.svg View File

@@ -0,0 +1,31 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
3
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+	 width="512px" height="177.846px" viewBox="0 167.078 512 177.846" enable-background="new 0 167.078 512 177.846"
6
+	 xml:space="preserve">
7
+<g>
8
+	<rect x="227.792" y="233.119" fill="#FFFFFF" width="3.677" height="69.596"/>
9
+	<path fill="#FFFFFF" d="M283.729,231.411c-20.879,0-36.633,15.759-36.633,36.506c0,20.879,15.754,36.505,36.633,36.505
10
+		c20.881,0,36.638-15.626,36.638-36.505C320.366,247.17,304.609,231.411,283.729,231.411z M283.729,301.008
11
+		c-18.777,0-32.958-14.182-32.958-33.091c0-18.91,14.18-33.09,32.958-33.09c18.778,0,32.963,14.18,32.963,33.09
12
+		C316.691,286.826,302.508,301.008,283.729,301.008z"/>
13
+	<path fill="#FFFFFF" d="M389.83,238.371c-7.879-6.434-17.332-6.96-22.191-6.96c-11.03,0-23.244,5.123-27.574,15.102h-0.266v-13.394
14
+		h-3.677v69.596h3.677v-40.051c0-17.464,10.77-27.837,28.234-27.837c10.505,0,16.148,3.414,19.695,6.565
15
+		c5.252,4.727,8.536,12.474,8.536,24.553v36.77h3.678v-36.77C399.942,253.472,396.659,244.148,389.83,238.371z"/>
16
+	<rect x="420.295" y="233.119" fill="#FFFFFF" width="3.677" height="69.596"/>
17
+	<path fill="#FFFFFF" d="M476.233,301.008c-17.729,0-32.961-13.395-32.961-33.091c0-9.454,3.938-18.646,9.587-23.769
18
+		c7.221-6.433,13.655-9.321,23.505-9.321c13.655,0,25.737,7.615,30.463,20.876h4.072c-5.515-16.413-20.485-24.292-34.666-24.292
19
+		c-21.143,0-36.639,16.02-36.639,36.638c0,21.667,16.414,36.373,36.639,36.373c16.546,0,29.676-9.454,34.534-23.636h-4.069
20
+		C503.284,291.16,491.99,301.008,476.233,301.008z"/>
21
+	<circle fill="#FFFFFF" cx="229.632" cy="211.546" r="3.969"/>
22
+	<circle fill="#FFFFFF" cx="422.132" cy="211.546" r="3.969"/>
23
+	<circle fill="#FFFFFF" cx="90.024" cy="256" r="36.306"/>
24
+	<path fill="#FFFFFF" d="M164.115,194.395c0-6.897-5.592-12.485-12.486-12.485c-3.129,0-5.98,1.159-8.171,3.06
25
+		c-14.887-11.227-33.397-17.892-53.435-17.892c-49.032,0-88.923,39.891-88.923,88.923c0,49.031,39.891,88.923,88.923,88.923
26
+		c49.032,0,88.922-39.892,88.922-88.923c0-20.039-6.665-38.548-17.892-53.435C162.956,200.375,164.115,197.523,164.115,194.395z
27
+		 M90.023,341.932c-47.382,0-85.931-38.55-85.931-85.932s38.548-85.931,85.931-85.931c19.266,0,37.07,6.374,51.417,17.123
28
+		c-1.442,2.036-2.297,4.517-2.297,7.203c0,6.894,5.59,12.483,12.485,12.483c2.685,0,5.165-0.855,7.202-2.297
29
+		c10.749,14.348,17.123,32.152,17.123,51.419C175.954,303.382,137.406,341.932,90.023,341.932z"/>
30
+</g>
31
+</svg>

BIN
src/assets/img/speakers/bear.jpg View File


BIN
src/assets/img/speakers/cheetah.jpg View File


BIN
src/assets/img/speakers/duck.jpg View File


BIN
src/assets/img/speakers/eagle.jpg View File


BIN
src/assets/img/speakers/elephant.jpg View File


BIN
src/assets/img/speakers/giraffe.jpg View File


BIN
src/assets/img/speakers/iguana.jpg View File


BIN
src/assets/img/speakers/kitten.jpg View File


BIN
src/assets/img/speakers/lion.jpg View File


BIN
src/assets/img/speakers/mouse.jpg View File


BIN
src/assets/img/speakers/puppy.jpg View File


BIN
src/assets/img/speakers/rabbit.jpg View File


BIN
src/assets/img/speakers/turtle.jpg View File


+ 11
- 0
src/declarations.d.ts View File

@@ -0,0 +1,11 @@
1
+/*
2
+  Declaration files are how the Typescript compiler knows about the type information(or shape) of an object.
3
+  They're what make intellisense work and make Typescript know all about your code.
4
+  A wildcard module is declared below to allow third party libraries to be used in an app even if they don't
5
+  provide their own type declarations.
6
+  To learn more about using third party libraries in an Ionic app, check out the docs here:
7
+  http://ionicframework.com/docs/v2/resources/third-party-libs/
8
+  For more info on type definition files, check out the Typescript docs here:
9
+  https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
10
+*/
11
+declare module '*';

+ 0
- 0
src/index.html View File


Some files were not shown because too many files changed in this diff