From 6f6caac59bdcd88e8afb5bc14dc6809d44d2bae9 Mon Sep 17 00:00:00 2001 From: Jeremy Guiselin <jeremy.guiselin@student.ecp.fr> Date: Wed, 8 Feb 2017 20:39:55 -0500 Subject: [PATCH] last wave fix --- config.xml | 185 ++++++++++++++-------------- scss/info.scss | 2 +- www/js/modules/config/config.js | 4 +- www/js/pages/football/controller.js | 9 +- www/js/pages/info/controller.js | 5 +- www/js/pages/info/template.html | 6 +- www/js/pages/tabs/controller.js | 66 ++++++++++ www/js/pages/tabs/routes.js | 1 + www/js/pages/tabs/template.html | 5 + www/js/pages/tennis/controller.js | 19 ++- www/partials/sport-index.html | 5 - 11 files changed, 195 insertions(+), 112 deletions(-) create mode 100644 www/js/pages/tabs/controller.js diff --git a/config.xml b/config.xml index 44b218d..1db9620 100644 --- a/config.xml +++ b/config.xml @@ -1,97 +1,98 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<widget id="com.Dimago.Betskills" version="2.0.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> - <name>Betskills</name> - <description> +<?xml version='1.0' encoding='utf-8'?> +<widget id="com.dimago.betskills" version="2.0.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> + <name>Betskills</name> + <description> Betskills app to see predictions of football and tennis games. </description> - <author email="contact@betskills.com" href=""> + <author email="contact@betskills.com" href=""> Betskills team </author> - <content src="index.html"/> - <access origin="*"/> - <preference name="webviewbounce" value="false"/> - <preference name="UIWebViewBounce" value="false"/> - <preference name="DisallowOverscroll" value="true"/> - <preference name="SplashScreenDelay" value="5000"/> - <preference name="ShowSplashScreenSpinner" value="false"/> - <preference name="android-minSdkVersion" value="23"/> - <preference name="BackupWebStorage" value="none"/> - <preference name="SplashScreen" value="screen"/> - <preference name="xwalkVersion" value="18+"/> - <preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect"/> - <preference name="xwalkMode" value="embedded"/> - <preference name="xwalkMultipleApk" value="true"/> - <preference name="Orientation" value="portrait"/> - <feature name="StatusBar"> - <param name="ios-package" onload="true" value="CDVStatusBar"/> - </feature> - <plugin name="cordova-plugin-console" spec="~1.0.3"/> - <plugin name="cordova-plugin-whitelist" spec="~1.2.2"/> - <plugin name="cordova-plugin-splashscreen" spec="~3.2.2"/> - <plugin name="cordova-plugin-statusbar" spec="~2.1.3"/> - <plugin name="ionic-plugin-keyboard" spec="~2.2.1"/> - <plugin name="cordova-plugin-firebase" spec="~0.1.18"/> - <plugin name="cordova-plugin-device" spec="~1.1.3"/> - <plugin name="cordova-plugin-file-transfer" spec="~1.6.1"/> - <plugin name="cordova-plugin-inapppurchase" spec="~1.1.0"/> - <plugin name="cordova-plugin-x-toast" spec="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git"/> - <plugin name="cordova-plugin-badge" spec="https://github.com/katzer/cordova-plugin-badge.git"/> - <plugin name="cordova-plugin-facebook4" spec="~1.7.4"> - <variable name="APP_ID" value="1830882820517971"/> - <variable name="APP_NAME" value="Betskills"/> - </plugin> - <platform name="ios"> - <access origin="cdvfile://*"/> - <allow-intent href="cdvfile://*"/> - <preference name="iosPersistentFileLocation" value="Library"/> - <icon src="resources/ios/icon/icon.png" width="57" height="57"/> - <icon src="resources/ios/icon/icon@2x.png" width="114" height="114"/> - <icon src="resources/ios/icon/icon-40.png" width="40" height="40"/> - <icon src="resources/ios/icon/icon-40@2x.png" width="80" height="80"/> - <icon src="resources/ios/icon/icon-40@3x.png" width="120" height="120"/> - <icon src="resources/ios/icon/icon-50.png" width="50" height="50"/> - <icon src="resources/ios/icon/icon-50@2x.png" width="100" height="100"/> - <icon src="resources/ios/icon/icon-60.png" width="60" height="60"/> - <icon src="resources/ios/icon/icon-60@2x.png" width="120" height="120"/> - <icon src="resources/ios/icon/icon-60@3x.png" width="180" height="180"/> - <icon src="resources/ios/icon/icon-72.png" width="72" height="72"/> - <icon src="resources/ios/icon/icon-72@2x.png" width="144" height="144"/> - <icon src="resources/ios/icon/icon-76.png" width="76" height="76"/> - <icon src="resources/ios/icon/icon-76@2x.png" width="152" height="152"/> - <icon src="resources/ios/icon/icon-83.5@2x.png" width="167" height="167"/> - <icon src="resources/ios/icon/icon-small.png" width="29" height="29"/> - <icon src="resources/ios/icon/icon-small@2x.png" width="58" height="58"/> - <icon src="resources/ios/icon/icon-small@3x.png" width="87" height="87"/> - <splash src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" height="1136"/> - <splash src="resources/ios/splash/Default-667h.png" width="750" height="1334"/> - <splash src="resources/ios/splash/Default-736h.png" width="1242" height="2208"/> - <splash src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" height="2048"/> - <splash src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" height="2732"/> - <splash src="resources/ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/> - <splash src="resources/ios/splash/Default@2x~iphone.png" width="640" height="960"/> - <splash src="resources/ios/splash/Default~iphone.png" width="320" height="480"/> - </platform> - <platform name="android"> - <preference name="android-minSdkVersion" value="23"/> - <preference name="android-targetSdkVersion" value="23"/> - <preference name="SplashMaintainAspectRatio" value="true"/> - <preference name="SplashShowOnlyFirstTime" value="false"/> - <preference name="AndroidPersistentFileLocation" value="Compatibility"/> - <preference name="android-build-tool" value="gradle"/> - <access origin="cdvfile://*"/> - <allow-intent href="cdvfile://*"/> - <icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/> - <icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/> - <icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/> - <icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/> - <icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/> - <icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/> - <splash src="resources/android/splash/drawable-port-ldpi-screen.png" density="port-ldpi"/> - <splash src="resources/android/splash/drawable-port-mdpi-screen.png" density="port-mdpi"/> - <splash src="resources/android/splash/drawable-port-hdpi-screen.png" density="port-hdpi"/> - <splash src="resources/android/splash/drawable-port-xhdpi-screen.png" density="port-xhdpi"/> - <splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/> - <splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/> - </platform> - <icon src="resources/android/icon/drawable-xhdpi-icon.png"/> + <content src="index.html" /> + <access origin="*" /> + <preference name="webviewbounce" value="false" /> + <preference name="UIWebViewBounce" value="false" /> + <preference name="DisallowOverscroll" value="true" /> + <preference name="SplashScreenDelay" value="5000" /> + <preference name="ShowSplashScreenSpinner" value="false" /> + <preference name="android-minSdkVersion" value="23" /> + <preference name="BackupWebStorage" value="none" /> + <preference name="SplashScreen" value="screen" /> + <preference name="xwalkVersion" value="18+" /> + <preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" /> + <preference name="xwalkMode" value="embedded" /> + <preference name="xwalkMultipleApk" value="true" /> + <preference name="Orientation" value="portrait" /> + <feature name="StatusBar"> + <param name="ios-package" onload="true" value="CDVStatusBar" /> + </feature> + <plugin name="cordova-plugin-console" spec="~1.0.3" /> + <plugin name="cordova-plugin-whitelist" spec="~1.2.2" /> + <plugin name="cordova-plugin-splashscreen" spec="~3.2.2" /> + <plugin name="cordova-plugin-statusbar" spec="~2.1.3" /> + <plugin name="ionic-plugin-keyboard" spec="~2.2.1" /> + <plugin name="cordova-plugin-firebase" spec="~0.1.18" /> + <plugin name="cordova-plugin-device" spec="~1.1.3" /> + <plugin name="cordova-plugin-file-transfer" spec="~1.6.1" /> + <plugin name="cordova-plugin-inapppurchase" spec="~1.1.0" /> + <plugin name="cordova-plugin-x-toast" spec="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git" /> + <plugin name="cordova-plugin-badge" spec="https://github.com/katzer/cordova-plugin-badge.git" /> + <plugin name="cordova-plugin-facebook4" spec="~1.7.4"> + <variable name="APP_ID" value="1830882820517971" /> + <variable name="APP_NAME" value="Betskills" /> + </plugin> + <platform name="ios"> + <access origin="cdvfile://*" /> + <allow-intent href="cdvfile://*" /> + <preference name="iosPersistentFileLocation" value="Library" /> + <icon height="57" src="resources/ios/icon/icon.png" width="57" /> + <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" /> + <icon height="40" src="resources/ios/icon/icon-40.png" width="40" /> + <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" /> + <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" /> + <icon height="50" src="resources/ios/icon/icon-50.png" width="50" /> + <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" /> + <icon height="60" src="resources/ios/icon/icon-60.png" width="60" /> + <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" /> + <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" /> + <icon height="72" src="resources/ios/icon/icon-72.png" width="72" /> + <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" /> + <icon height="76" src="resources/ios/icon/icon-76.png" width="76" /> + <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" /> + <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" /> + <icon height="29" src="resources/ios/icon/icon-small.png" width="29" /> + <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" /> + <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" /> + <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" /> + <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" /> + <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" /> + <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" /> + <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" /> + <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" /> + <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" /> + <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" /> + </platform> + <platform name="android"> + <preference name="android-minSdkVersion" value="23" /> + <preference name="android-targetSdkVersion" value="23" /> + <preference name="SplashMaintainAspectRatio" value="true" /> + <preference name="SplashShowOnlyFirstTime" value="false" /> + <preference name="AndroidPersistentFileLocation" value="Compatibility" /> + <preference name="android-build-tool" value="gradle" /> + <access origin="cdvfile://*" /> + <allow-intent href="cdvfile://*" /> + <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> + <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> + <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> + <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> + <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> + <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> + <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" /> + <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" /> + <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" /> + <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" /> + <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" /> + <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" /> + </platform> + <icon src="resources/android/icon/drawable-xhdpi-icon.png" /> + <plugin name="com.jcjee.plugins.emailcomposer" spec="https://github.com/jcjee/email-composer.git" /> </widget> diff --git a/scss/info.scss b/scss/info.scss index 4668c12..74d81ac 100644 --- a/scss/info.scss +++ b/scss/info.scss @@ -37,5 +37,5 @@ } .info-section { - margin-bottom: 10px; + margin-bottom: 10px !important; } diff --git a/www/js/modules/config/config.js b/www/js/modules/config/config.js index e69646b..0b33459 100644 --- a/www/js/modules/config/config.js +++ b/www/js/modules/config/config.js @@ -41,7 +41,7 @@ ], 'football': [ 'ligue_1', - 'premiere_league', + 'premier_league', 'bundesliga', 'liga_bbva', 'liga_nos', @@ -71,7 +71,7 @@ { productId: 'liga_nos', title: 'Liga NOS', description: 'Liga NOS pack', price: '0.99€' }, { productId: 'serie_a', title: 'Serie A', description: 'Serie A pack', price: '0.99€' }, { productId: 'eredivisie', title: 'Eredivisie', description: 'Eredivisie pack', price: '0.99€' }, - { productId: 'premiere_league', title: 'Premiere League', description: 'Premiere League pack', price: '0.99€' }, + { productId: 'premier_league', title: 'Premiere League', description: 'Premiere League pack', price: '0.99€' }, { productId: 'champions_league', title: 'Champions League', description: 'Champions League pack', price: '1.99€' }, { productId: 'full_champions_league', title: 'Full Champions League', description: 'Full Champions League pack', price: '2.99€' }, { productId: 'football_full_2', 'title': 'Tennis 2', description: 'Tennis 2 pack', price: '1.99€' }, diff --git a/www/js/pages/football/controller.js b/www/js/pages/football/controller.js index 9e0abf4..bcaf531 100644 --- a/www/js/pages/football/controller.js +++ b/www/js/pages/football/controller.js @@ -47,6 +47,7 @@ $scope.price = 0; $scope.predictionsNumber = 0; + /** End Scope variables **/ @@ -83,7 +84,10 @@ $scope.selected.push(league); $scope.predictionsNumber += league.predictions_number; } - $scope.price = self.findPrice($scope.selected.length); + + var price = self.findPrice($scope.selected.length); + $scope.price = price; + $scope.$parent.$parent.select($scope.selected, price, $scope.predictionsNumber, 'football', self.findPack($scope.selected.length)); } }; @@ -231,7 +235,6 @@ }) ); - $scope.$on('$destroy', function(){ angular.forEach(deregistrationCallbackList, function(deregistrationCallback){ deregistrationCallback(); @@ -272,7 +275,7 @@ }).finally(function () { $ionicLoading.hide(); }); - + }); diff --git a/www/js/pages/info/controller.js b/www/js/pages/info/controller.js index 415a384..3c17741 100644 --- a/www/js/pages/info/controller.js +++ b/www/js/pages/info/controller.js @@ -34,13 +34,12 @@ $scope.myGoBack = function() { $ionicHistory.goBack(); }; - + $scope.sendEmail = function () { - //cordova plugin add https://github.com/jcjee/email-composer.git if(window.plugins && window.plugins.emailComposer) { window.plugins.emailComposer.showEmailComposerWithCallback(function(result) { console.log(result); - }, + }, "", // Subject "", // Body ["contact@betskills.com"], // To diff --git a/www/js/pages/info/template.html b/www/js/pages/info/template.html index a31971f..3817362 100644 --- a/www/js/pages/info/template.html +++ b/www/js/pages/info/template.html @@ -3,7 +3,7 @@ <img class="info-icon" ng-click="myGoBack()" src="img/back.png" alt=""> </ion-nav-buttons> <ion-nav-buttons side="right"> - <img class="info-icon" ng-click="sendEmail()" src="img/message.png" alt=""> + <img class="info-icon infobulle" ng-click="sendEmail()" src="img/message.png" alt=""> </ion-nav-buttons> <ion-content class="has-header info"> <h3 class="title-section" translate="info_title_1"></h3> @@ -29,9 +29,9 @@ <p class="content" translate="who_we_are_5"></p> <p class="content"> {{"who_we_are_6"|translate}} - <a ng-href="www.betskills.com/terms-and-conditions" onclick="window.open(this.href, '_system', 'location=yes'); return false;">www.betskills.com/terms-and-conditions</a> + <a ng-href="http://betskills.com/terms-and-conditions" onclick="window.open(this.href, '_system', 'location=yes'); return false;">www.betskills.com/terms-and-conditions</a> </p> - <h3 class="title-section" translate="info_title_3"></h3> + <h3 class="title-section info-section" translate="info_title_3"></h3> <p class="content" translate="how_to_use_1"></p> <p class="content" translate="how_to_use_2"></p> <p class="content" translate="how_to_use_3"></p> diff --git a/www/js/pages/tabs/controller.js b/www/js/pages/tabs/controller.js new file mode 100644 index 0000000..e9135c4 --- /dev/null +++ b/www/js/pages/tabs/controller.js @@ -0,0 +1,66 @@ +/** + * Created by jeremyguiselin on 08/02/2017. + */ + +/** + * Created by jeremyguiselin on 10/12/2016. + */ + +(function (angular) { + "use strict"; + + /** + * @ngdoc controller + * @name InfoController + * + * @description + * Controller for the info page. + * + * @ngInject + */ + function TabsController( + $ionicHistory, + $scope, + PurchaseService + ) { + + var deregistrationCallbackList = []; + var self = this; + + self.uuid = window.cordova ? ionic.Platform.device().uuid : '7f4a6a40e5c87157'; + self.sport = ''; + self.pack = ''; + + // cleanup + $scope.$on('$destroy', function(){ + angular.forEach( + deregistrationCallbackList, + function(deregistrationCallback){ + deregistrationCallback(); + }); + deregistrationCallbackList = null; + }); + + $scope.selected = []; + $scope.price = 0; + $scope.predictionsNumber = 0; + + $scope.select = function (selected, price, predictionsNumber, sport, pack) { + $scope.selected = selected; + $scope.price = price; + $scope.predictionsNumber = predictionsNumber; + self.sport = sport; + self.pack = pack + }; + + $scope.buyContent = function () { + if (self.pack !== '') { + PurchaseService.buyContent(self.uuid, self.pack, $scope.selected); + } + }; + + } + + angular.module('starter') + .controller('TabsController', TabsController); +})(angular); diff --git a/www/js/pages/tabs/routes.js b/www/js/pages/tabs/routes.js index 6ad804b..1142521 100644 --- a/www/js/pages/tabs/routes.js +++ b/www/js/pages/tabs/routes.js @@ -16,6 +16,7 @@ views: { 'content': { templateUrl: 'js/pages/tabs/template.html', + controller: 'TabsController as tabsCtrl' } } }); diff --git a/www/js/pages/tabs/template.html b/www/js/pages/tabs/template.html index ba54017..991c12e 100644 --- a/www/js/pages/tabs/template.html +++ b/www/js/pages/tabs/template.html @@ -12,4 +12,9 @@ <ion-nav-view name="tab-notification"></ion-nav-view> </ion-tab> </ion-tabs> + <div id="unlock" class="unlock" ng-class="{active : selected.length > 0}"> + <div class="content" ng-click="buyContent()"> + {{"unlock" | translate}} {{predictionsNumber}} {{"predictions" | translate}} <span>{{price}}</span> + </div> + </div> </ion-view> diff --git a/www/js/pages/tennis/controller.js b/www/js/pages/tennis/controller.js index f8ebfc0..a099baf 100644 --- a/www/js/pages/tennis/controller.js +++ b/www/js/pages/tennis/controller.js @@ -83,7 +83,10 @@ $scope.selected.push(league); $scope.predictionsNumber += league.predictions_number; } - $scope.price = self.findPrice($scope.selected.length); + + var price = self.findPrice($scope.selected.length); + $scope.price = price; + $scope.$parent.$parent.select($scope.selected, price, $scope.predictionsNumber, 'tennis', self.findPack()); } }; @@ -187,6 +190,18 @@ return price; } }; + + this.findPack = function () { + var selectedPack = ''; + if ($scope.selected.length === 1) { + selectedPack = 'tennis'; + } else if($scope.selected.length > 1 && $scope.selected.length <= 6) { + var packNumber = $scope.selected.length - 1; + selectedPack = 'tennis_full_'+ packNumber; + } + + return selectedPack; + }; /** End Controller functions @@ -202,7 +217,6 @@ }) ); - $scope.$on('$destroy', function(){ angular.forEach(deregistrationCallbackList, function(deregistrationCallback){ deregistrationCallback(); @@ -210,7 +224,6 @@ deregistrationCallbackList = null; }); - $scope.$on("$ionicView.beforeEnter", function(event, data){ $ionicLoading.show({ template: '<ion-spinner icon="ripple" class="spinner-assertive"></ion-spinner>', diff --git a/www/partials/sport-index.html b/www/partials/sport-index.html index b98c7b4..8a75965 100644 --- a/www/partials/sport-index.html +++ b/www/partials/sport-index.html @@ -30,9 +30,4 @@ </a> </ion-item> </ion-list> -<div class="unlock" ng-class="{active : selected.length > 0}"> - <a class="content" ng-click="buyContent()"> - {{"unlock" | translate}} {{predictionsNumber}} {{"predictions" | translate}} <span>{{price}}</span> - </div> -</div> -- GitLab