arnaucube
arnaucube/commonroutesAppPublic Self-hosted repository
icon and splashscreen updated, askForCar and askForPackage implemented, visualization of type of travel in the travels view
arnaucode idoctnef@openmailbox.org
Tue, 11 Jul 2017 22:36:14 +0200
commit

24c503eee1069eefd07c6cd4cb3b9bfd3e9a2181

parent

72111df0d335b7fd4d3f202b7857476d05545624

82 files changed, 370 insertions(+), 56 deletions(-)

jump to
M config.xml → config.xml

@@ -1,49 +1,49 @@

-<?xml version='1.0' encoding='utf-8'?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <widget id="com.ionicframework.app751563" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> - <name>CarsInCommon</name> - <description> + <name>CarsInCommon</name> + <description> CarSharing app, for collective use. </description> - <author email="mail@mail.com" href="http://arnaucode.com/"> + <author email="mail@mail.com" href="http://arnaucode.com/"> ArnauCode </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="3000" /> - <preference name="FadeSplashScreenDuration" value="500" /> - <preference name="android-minSdkVersion" value="16" /> - <preference name="BackupWebStorage" value="none" /> - <preference name="SplashScreen" value="screen" /> - <feature name="StatusBar"> - <param name="ios-package" onload="true" value="CDVStatusBar" /> - </feature> - <platform name="android"> - <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="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" /> - <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" /> - <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" /> - <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" /> - <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" /> - <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.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> - <plugin name="cordova-plugin-whitelist" spec="~1.3.1" /> - <plugin name="cordova-plugin-device" spec="~1.1.4" /> - <plugin name="cordova-plugin-splashscreen" spec="~4.0.1" /> - <plugin name="cordova-plugin-console" spec="~1.0.5" /> - <plugin name="ionic-plugin-keyboard" spec="~2.2.1" /> - <icon src="resources/android/icon/drawable-xhdpi-icon.png" /> -</widget> + <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="3000"/> + <preference name="FadeSplashScreenDuration" value="500"/> + <preference name="android-minSdkVersion" value="16"/> + <preference name="BackupWebStorage" value="none"/> + <preference name="SplashScreen" value="screen"/> + <feature name="StatusBar"> + <param name="ios-package" onload="true" value="CDVStatusBar"/> + </feature> + <platform name="android"> + <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-land-ldpi-screen.png" density="land-ldpi"/> + <splash src="resources/android/splash/drawable-land-mdpi-screen.png" density="land-mdpi"/> + <splash src="resources/android/splash/drawable-land-hdpi-screen.png" density="land-hdpi"/> + <splash src="resources/android/splash/drawable-land-xhdpi-screen.png" density="land-xhdpi"/> + <splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" density="land-xxhdpi"/> + <splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" density="land-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> + <plugin name="cordova-plugin-whitelist" spec="~1.3.1"/> + <plugin name="cordova-plugin-device" spec="~1.1.4"/> + <plugin name="cordova-plugin-splashscreen" spec="~4.0.1"/> + <plugin name="cordova-plugin-console" spec="~1.0.5"/> + <plugin name="ionic-plugin-keyboard" spec="~2.2.1"/> + <icon src="resources/android/icon/drawable-xhdpi-icon.png"/> +</widget>
M www/css/style.css → www/css/style.css

@@ -95,6 +95,12 @@ color: #ffffff;

border: 0px; width: 80%; } +.o_transparentInputBlack{ + background: rgba(255, 255, 255, 0); + color: #000000; + border: 0px; + width: 100%; +} .o_userImgCircular { margin-top: 5%; background: #ffffff;
M www/index.html → www/index.html

@@ -44,8 +44,8 @@ <script src="js/travels.js"></script>

<script src="js/travel.js"></script> <script src="js/newTravel.js"></script> <script src="js/offerCar.js"></script> - <!--<script src="js/askCar.js"></script> - <script src="js/askPackage.js"></script>--> + <script src="js/askForCar.js"></script> + <script src="js/askForPackage.js"></script> <script src="js/users.js"></script> <script src="js/user.js"></script> <script src="js/userTravels.js"></script>
M www/js/app.js → www/js/app.js

@@ -24,8 +24,8 @@ 'app.travels',

'app.travel', 'app.newTravel', 'app.offerCar', - /* 'app.askCar', - 'app.askPackage',*/ + 'app.askForCar', + 'app.askForPackage', 'app.users', 'app.user', 'app.userTravels',

@@ -134,6 +134,24 @@ views: {

'menuContent': { templateUrl: 'templates/offerCar.html', controller: 'OfferCarCtrl' + } + } + }) + .state('app.askForCar', { + url: '/askForCar', + views: { + 'menuContent': { + templateUrl: 'templates/askForCar.html', + controller: 'AskForCarCtrl' + } + } + }) + .state('app.askForPackage', { + url: '/askForPackage', + views: { + 'menuContent': { + templateUrl: 'templates/askForPackage.html', + controller: 'AskForPackageCtrl' } } })
A www/js/askForCar.js

@@ -0,0 +1,81 @@

+angular.module('app.askForCar', ['pascalprecht.translate', 'ui-leaflet']) + +.controller('AskForCarCtrl', function($scope, $stateParams, $translate, + $http, $filter, $ionicLoading) { + + $scope.newtravel={}; + $scope.newtravel.from={ + lat: 0, + long:0 + }; + $scope.newtravel.to={ + lat: 0, + long:0 + }; + $scope.center= { + lat: 0, + lng: 0, + zoom: 1 + }; + $scope.markers=new Array(); + $scope.tiles= { + url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", + options: { + attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' + } + }; + $scope.createTravel =function(){ + $scope.newtravel.type="asking"; + $http({ + url: urlapi + 'travels', + method: "POST", + data: $scope.newtravel + }) + .then(function(data) { + console.log(data); + window.location="#app/travels" + }, + function(data) { // optional + // failed + console.log(data); + $ionicLoading.show({ template: 'Complete all parameters first', noBackdrop: true, duration: 2000 }); + + }); + }; + $scope.getGeo = function(){ + + $scope.markers=[]; + console.log($scope.newtravel.from.name); + console.log($scope.newtravel.to.name); + $http.get('http://nominatim.openstreetmap.org/search?q=' + $scope.newtravel.from.name + '&format=json&limit=1') + .then(function(data) { + console.log(data); + if(data.data[0]) + { + $scope.newtravel.from.lat=data.data[0].lat; + $scope.newtravel.from.long=data.data[0].lon; + $scope.newtravel.from.name=data.data[0].display_name; + $scope.markers.push({ + lat: Number(data.data[0].lat), + lng: Number(data.data[0].lon), + message: data.data[0].display_name + }); + } + $http.get('http://nominatim.openstreetmap.org/search?q=' + $scope.newtravel.to.name + '&format=json&limit=1') + .then(function(data) { + if(data.data[0]) + { + $scope.newtravel.to.lat=data.data[0].lat; + $scope.newtravel.to.long=data.data[0].lon; + $scope.newtravel.to.name=data.data[0].display_name; + $scope.markers.push({ + lat: Number(data.data[0].lat), + lng: Number(data.data[0].lon), + message: data.data[0].display_name + }); + } + }); + }); + + }; +});
A www/js/askForPackage.js

@@ -0,0 +1,81 @@

+angular.module('app.askForPackage', ['pascalprecht.translate', 'ui-leaflet']) + +.controller('AskForPackageCtrl', function($scope, $stateParams, $translate, + $http, $filter, $ionicLoading) { + + $scope.newtravel={}; + $scope.newtravel.from={ + lat: 0, + long:0 + }; + $scope.newtravel.to={ + lat: 0, + long:0 + }; + $scope.center= { + lat: 0, + lng: 0, + zoom: 1 + }; + $scope.markers=new Array(); + $scope.tiles= { + url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", + options: { + attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' + } + }; + $scope.createTravel =function(){ + $scope.newtravel.type="package"; + $http({ + url: urlapi + 'travels', + method: "POST", + data: $scope.newtravel + }) + .then(function(data) { + console.log(data); + window.location="#app/travels" + }, + function(data) { // optional + // failed + console.log(data); + $ionicLoading.show({ template: 'Complete all parameters first', noBackdrop: true, duration: 2000 }); + + }); + }; + $scope.getGeo = function(){ + + $scope.markers=[]; + console.log($scope.newtravel.from.name); + console.log($scope.newtravel.to.name); + $http.get('http://nominatim.openstreetmap.org/search?q=' + $scope.newtravel.from.name + '&format=json&limit=1') + .then(function(data) { + console.log(data); + if(data.data[0]) + { + $scope.newtravel.from.lat=data.data[0].lat; + $scope.newtravel.from.long=data.data[0].lon; + $scope.newtravel.from.name=data.data[0].display_name; + $scope.markers.push({ + lat: Number(data.data[0].lat), + lng: Number(data.data[0].lon), + message: data.data[0].display_name + }); + } + $http.get('http://nominatim.openstreetmap.org/search?q=' + $scope.newtravel.to.name + '&format=json&limit=1') + .then(function(data) { + if(data.data[0]) + { + $scope.newtravel.to.lat=data.data[0].lat; + $scope.newtravel.to.long=data.data[0].lon; + $scope.newtravel.to.name=data.data[0].display_name; + $scope.markers.push({ + lat: Number(data.data[0].lat), + lng: Number(data.data[0].lon), + message: data.data[0].display_name + }); + } + }); + }); + + }; +});
A www/templates/askForCar.html

@@ -0,0 +1,58 @@

+<ion-view view-title="{{'Ask_For_Car' | translate}}"> + <ion-content> + <div class="padding"> + <label class="item item-input"> + <span class="input-label">{{'Title' | translate}}</span> + <input type="text" ng-model="newtravel.title"> + </label> + <div layout="row"> + <label class="item item-input"> + <span class="input-label">{{'From' | translate}}</span> + <input type="text" ng-model="newtravel.from.name"> + </label> + <label class="item item-input"> + <span class="input-label">{{'To' | translate}}</span> + <input type="text" ng-model="newtravel.to.name"> + </label> + </div> + </div><!-- end of padding --> + <a ng-click="getGeo()" ng-show="newtravel.from.name && newtravel.to.name" + class="button o_purple300">{{'Get_positions' | translate}}</a> + + <leaflet ng-show="markers[0]" + width="100%" height="40%" markers="markers" center="center" + tiles="tiles" id="map-simple-map"></leaflet> + + <div class="padding" ng-show="markers[0]"> + <label class="item item-input"> + <span class="input-label">{{'n_People' | translate}}</span> + <input ng-model="newtravel.seats" type="number"> + </label> + + <label class="item-input"> + <span class="input-label">{{'Date' | translate}}</span> + <input ng-model="newtravel.date" type="date" placeholder=""> + </label> + <label class="item-input"> + <span class="input-label">{{'Hour' | translate}}</span> + <input ng-model="newtravel.date" type="time" placeholder=""> + </label> + <ion-toggle ng-model="newtravel.package" toggle-class="toggle-calm"> + <i class="icon ion-ios-box"></i> + {{'Want_to_carry_package' | translate}} + </ion-toggle> + <!--<ion-toggle ng-model="newtravel.collectivized" toggle-class="toggle-calm"> + {{'Collectivized_car' | translate}} + </ion-toggle>--> + <label class="item item-input"> + <span class="input-label">{{'Description' | translate}}</span> + <input type="text" ng-model="newtravel.description"> + </label> + <p class="padding"> + <a ng-click="createTravel()" class="button o_purple400 o_floatRight"> + {{'Post_asking_car' | translate}} + </a> + </p> + </div><!-- end of padding --> + </ion-content> +</ion-view>
A www/templates/askForPackage.html

@@ -0,0 +1,58 @@

+<ion-view view-title="{{'Ask_For_Package' | translate}}"> + <ion-content> + <div class="padding"> + <label class="item item-input"> + <span class="input-label">{{'Title' | translate}}</span> + <input type="text" ng-model="newtravel.title"> + </label> + <div layout="row"> + <label class="item item-input"> + <span class="input-label">{{'From' | translate}}</span> + <input type="text" ng-model="newtravel.from.name"> + </label> + <label class="item item-input"> + <span class="input-label">{{'To' | translate}}</span> + <input type="text" ng-model="newtravel.to.name"> + </label> + </div> + </div><!-- end of padding --> + <a ng-click="getGeo()" ng-show="newtravel.from.name && newtravel.to.name" + class="button o_purple300">{{'Get_positions' | translate}}</a> + + <leaflet ng-show="markers[0]" + width="100%" height="40%" markers="markers" center="center" + tiles="tiles" id="map-simple-map"></leaflet> + + <div class="padding" ng-show="markers[0]"> + <!--<label class="item item-input"> + <span class="input-label">{{'n_Seats' | translate}}</span> + <input ng-model="newtravel.seats" type="number"> + </label>--> + + <label class="item-input"> + <span class="input-label">{{'Date' | translate}}</span> + <input ng-model="newtravel.date" type="date" placeholder=""> + </label> + <label class="item-input"> + <span class="input-label">{{'Hour' | translate}}</span> + <input ng-model="newtravel.date" type="time" placeholder=""> + </label> + <!--<ion-toggle ng-model="newtravel.package" toggle-class="toggle-calm"> + <i class="icon ion-ios-box"></i> + {{'Can_carry_package' | translate}} + </ion-toggle> + <ion-toggle ng-model="newtravel.collectivized" toggle-class="toggle-calm"> + {{'Collectivized_car' | translate}} + </ion-toggle>--> + <label class="item item-input"> + <span class="input-label">{{'Description' | translate}}</span> + <input type="text" ng-model="newtravel.description"> + </label> + <p class="padding"> + <a ng-click="createTravel()" class="button o_purple400 o_floatRight"> + {{'Ask_for_package' | translate}} + </a> + </p> + </div><!-- end of padding --> + </ion-content> +</ion-view>
M www/templates/editUser.html → www/templates/editUser.html

@@ -1,5 +1,5 @@

<ion-view view-title="{{'Edit_user' | translate}} {{user.username}}"> - <ion-content class="has-footer"> + <ion-content> <div class="o_userProfileBackground"> <img ng-src="{{user.avatar}}" class="o_userImgCircular" ng-click="selectAvatar()"/>

@@ -24,6 +24,10 @@ </a>

</p> </div> <div class="item"> + <p> + <input ng-model="user.faircoinString" class="o_transparentInputBlack" + placeholder="{{'FaircoinWallet' | translate}}"> + </p> <img src="{{user.faircoin}}" style="width: 100%;" ng-click="selectFaircoinPublicKey()" /> </div>
M www/templates/newTravel.html → www/templates/newTravel.html

@@ -4,13 +4,13 @@ <a ng-href="#/app/offerCar" class="item item-icon-left o_purple500">

<i class="icon ion-android-car"></i> {{'Offer_Car' | translate}} </a> - <a href="" class="item item-icon-left o_purple400"> + <a href="#/app/askForCar" class="item item-icon-left o_purple400"> <i class="icon ion-help"></i> - {{'Ask_for_Car' | translate}} (not yet) + {{'Ask_for_Car' | translate}} </a> - <a href="" class="item item-icon-left o_purple300"> + <a href="#/app/askForPackage" class="item item-icon-left o_purple300"> <i class="icon ion-ios-box"></i> - {{'Ask_for_Package' | translate}} (not yet) + {{'Ask_for_Package' | translate}} </a> </ion-content> </ion-view>
M www/templates/offerCar.html → www/templates/offerCar.html

@@ -1,5 +1,5 @@

<ion-view view-title="{{'Offer_Car' | translate}}"> - <ion-content class="has-footer"> + <ion-content> <div class="padding"> <label class="item item-input"> <span class="input-label">{{'Title' | translate}}</span>
M www/templates/travel.html → www/templates/travel.html

@@ -20,7 +20,10 @@ </p>

</p> </div> <h2> - <i class="icon ion-android-car"></i> {{travel.title}}</h2> + <i ng-show="travel.type=='offering'" class="icon ion-android-car"></i> + <i ng-show="travel.type=='asking'" class="icon ion-help"></i> + <i ng-show="travel.type=='package'" class="icon ion-ios-box"></i> + {{travel.title}}</h2> <div class="">{{travel.date | date:"dd/MM HH:mm a"}}</div> </div>
M www/templates/travels.html → www/templates/travels.html

@@ -23,7 +23,9 @@ class="item item-icon-left" href="#/app/travels/{{travel._id}}">

<div class="item-note text-right"> {{travel.user.username}} </div> - <i class="icon ion-android-car o_text_grey700"></i> + <i ng-show="travel.type=='offering'" class="icon ion-android-car o_text_grey700"></i> + <i ng-show="travel.type=='asking'" class="icon ion-help o_text_grey700"></i> + <i ng-show="travel.type=='package'" class="icon ion-ios-box o_text_grey700"></i> <h2 class="o_text_grey800">{{travel.title}}</h2> <div class="item-note text-right"> <div class="o_text_purple300">{{travel.date | date:"dd/MM"}}</div>
M www/templates/user.html → www/templates/user.html

@@ -44,6 +44,9 @@ </a>

</div> </div> <div class="item"> + <p> + {{user.faircoinString}} + </p> <img src="{{user.faircoin}}" style="width: 100%;" /> </div> <!--<div class="item item-body">