arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
user page and users page added
nau idoctnef@openmailbox.org
Sun, 28 Aug 2016 11:57:21 +0200
commit

959c9692d360a63f949e48770d7899de04b45524

parent

a6950029b0a62a438d26c6c88b982a604475aaa5

62 files changed, 120 insertions(+), 20 deletions(-)

jump to
M app/www/js/app.js → app/www/js/app.js

@@ -41,14 +41,24 @@ }

} }) - .state('app.browse', { - url: '/browse', + .state('app.users', { + url: '/users', views: { 'menuContent': { - templateUrl: 'templates/browse.html' + templateUrl: 'templates/users.html', + controller: 'UsersCtrl' } } }) + .state('app.user', { + url: '/users/:username', + views: { + 'menuContent': { + templateUrl: 'templates/user.html', + controller: 'UserCtrl' + } + } + }) .state('app.travels', { url: '/travels', views: {
M app/www/js/controllers.js → app/www/js/controllers.js

@@ -45,6 +45,7 @@

.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout) { $scope.travels=""; + $scope.travels=JSON.parse(localStorage.getItem('c_travels')); $scope.doRefresh = function() { $http.get('http://localhost:3000/api/travels')

@@ -52,6 +53,7 @@ .success(function(data, status, headers,config){

console.log('data success'); console.log(data); // for browser console $scope.travels = data; // for UI + localStorage.setItem('c_travels', JSON.stringify($scope.travels)); $scope.$broadcast('scroll.refreshComplete');//refresher stop }) .error(function(data, status, headers,config){

@@ -117,6 +119,7 @@ console.log("response: ");

console.log(response); $scope.newtravel._id=response.data._id; $scope.travels.push($scope.newtravel); + $scope.newtravel={}; }, function(response) { // optional // failed

@@ -169,6 +172,47 @@ .success(function(data, status, headers,config){

console.log('data success'); console.log(data); // for browser console $scope.travel = data; // for UI + }) + .error(function(data, status, headers,config){ + console.log('data error'); + }) + .then(function(result){ + travels = result.data; + }); +}) + +.controller('UsersCtrl', function($scope, $http, $ionicModal, $timeout) { + $scope.users=""; + + $scope.users=JSON.parse(localStorage.getItem('c_users')); + + $scope.doRefresh = function() { + $http.get('http://localhost:3000/api/users') + .success(function(data, status, headers, config){ + console.log('data success'); + console.log(data); // for browser console + $scope.users = data; // for UI + localStorage.setItem('c_users', JSON.stringify($scope.users)); + $scope.$broadcast('scroll.refreshComplete');//refresher stop + }) + .error(function(data, status, headers,config){ + console.log('data error'); + $scope.$broadcast('scroll.refreshComplete');//refresher stop + }) + .then(function(result){ + users = result.data; + }); + }; +}) + +.controller('UserCtrl', function($scope, $stateParams, $http) { + $scope.travel=""; + console.log($stateParams.username); + $http.get('http://localhost:3000/api/users/byusername/'+$stateParams.username) + .success(function(data, status, headers,config){ + console.log('data success'); + console.log(data); // for browser console + $scope.user = data; // for UI }) .error(function(data, status, headers,config){ console.log('data error');
M app/www/templates/menu.html → app/www/templates/menu.html

@@ -29,17 +29,13 @@ <ion-item menu-close href="#/app/travels">

<img class='o-imgMenu' src="img/road.png" /> Travels </ion-item> - <ion-item menu-close href="#/app/browse"> - <img class='o-imgMenu' src="img/package.png" /> - Transport material + <ion-item menu-close href="#/app/users"> + <img class='o-imgMenu' src="img/users.png" /> + Users </ion-item> <ion-item menu-close href="#/app/search"> <img class='o-imgMenu' src="img/carimg/station-wagon.png" /> Available cars - </ion-item> - <ion-item menu-close href="#/app/browse"> - <img class='o-imgMenu' src="img/community.png" /> - Users </ion-item> </ion-list> </ion-content>
M app/www/templates/travel.html → app/www/templates/travel.html

@@ -2,13 +2,16 @@ <ion-view view-title="Travel">

<ion-content> <div class="item item-avatar"> <img ng-src="img/{{travel.modality}}.png" /> - <span class="badge badge-balanced" ng-show="travel.collectivized">Collectivized</span> + <div class="item-note o-text-right"> + <a class="badge badge-calm" href="#/app/users/{{travel.owner}}">{{travel.owner}}</a> + </div> <h2>{{travel.title}}</h2> - <p>{{travel.owner}}</p> + <div class="">{{travel.date | date:"dd/MM HH:mm a"}}</div> </div> <div class="item item-body"> <div class='o-float-right o-text-right'> - <div class="">{{travel.date | date:"dd/MM HH:mm a"}}</div> + <span class="badge badge-balanced" ng-show="travel.collectivized">Collectivized</span> + <br> <div class="o-mini-text" ng-show="travel.package"> <div ng-show="travel.modality=='offering'">can carry package <img src="img/package.png" class="o-imgMenu" /></div>
M app/www/templates/travels.html → app/www/templates/travels.html

@@ -19,8 +19,10 @@ {{travel.description}}

</p> <p class="" ng-show="travel.modality=='offering'">nºseats: {{travel.seats}}</p> <p class="" ng-show="travel.modality=='asking'">nºpeople: {{travel.seats}}</p> - <div class="badge badge-calm item-note">{{travel.owner}}</div> - <div class="badge badge-calm item-note">{{travel.date | date:"dd/MM HH:mm a"}}</div> + <div class="item-note"> + <div class="positive">{{travel.date | date:"dd/MM HH:mm a"}}</div> + <div class="badge badge-calm">{{travel.owner}}</div> + </div> </a> </div> </ion-content>
A app/www/templates/user.html

@@ -0,0 +1,18 @@

+<ion-view view-title="User"> + <ion-content> + <div class="item item-avatar"> + <img ng-src="img/avatars/{{user.avatar}}.png" /> + <div class="item-note o-text-right"> + <a class="badge badge-calm" href="#/app/users/{{travel.owner}}">{{user.owner}}</a> + </div> + <h2>{{user.username}}</h2> + </div> + <div class="item item-body"> + <p class="o-bold">{{user.description}}</p> + <p>{{user.mail}}</p> + <p> + <img class='o-imgMenu' src="img/telegram.png" /> {{user.telegram}} + </p> + </div> + </ion-content> +</ion-view>
A app/www/templates/users.html

@@ -0,0 +1,23 @@

+<ion-view view-title="Users"> + <ion-content> + <ion-refresher + pulling-text="Pull to refresh..." + on-refresh="doRefresh()"> + </ion-refresher> + <div class="list"> + <div class="o-float-right"> + <a ng-click="showNewAskingTravel()" class="button icon ion-email"></a> + <a ng-click="showNewAskingTravel()" class="button icon ion-help"></a> + <a ng-click="showNewOfferingTravel()" class="button icon ion-plus"></a> + </div> + + <a ng-repeat="user in users | orderBy: 'date'" class="item item-avatar" href="#/app/users/{{user.username}}"> + <img ng-src="img/avatars/{{user.avatar}}.png"> + <h2>{{user.username}}</h2> + <p> + {{user.description}} + </p> + </a> + </div> + </ion-content> +</ion-view>
M server/controllers/travelController.js → server/controllers/travelController.js

@@ -28,7 +28,7 @@ };

exports.findAllTravelsFromUsername = function(req, res) { travelModel.find({ - authorname: req.params.userid + _id: req.params.userid }, function(err, travels) { if (err) throw err;
M server/controllers/userController.js → server/controllers/userController.js

@@ -42,7 +42,8 @@ res.json({ success: false, message: 'no user found' });

} else if (user) { console.log(user); // return the information including token as JSON - res.jsonp(user); + //res.jsonp(user); + res.status(200).jsonp(user[0]); }

@@ -61,7 +62,8 @@ password: req.body.password,

description: req.body.description, avatar: req.body.avatar, mail: req.body.mail, - admin: req.body.admin + phone: req.body.phone, + telegram: req.body.telegram }); user.save(function(err, user) {

@@ -78,7 +80,8 @@ user.password = req.body.password;

user.description = req.body.description; user.avatar = req.body.avatar; user.mail = req.body.mail; - user.admin = req.body.admin; + user.phone = req.body.phone; + user.telegram = req.body.telegram; user.save(function(err) { if(err) return res.send(500, err.message);
M server/models/userModel.js → server/models/userModel.js

@@ -8,6 +8,7 @@ password: { type: String },

description: { type: String }, avatar: { type: String }, mail: { type: String }, - phone: { type: String } + phone: { type: String }, + telegram: { type: String } }) module.exports = mongoose.model('userModel', userSchema);