Commit 50d191bc434488e45fdd75997590bd2651d40bf7
1 parent
4df97dc0
Exists in
master
and in
2 other branches
refactoring profile load and edit
Showing
10 changed files
with
122 additions
and
125 deletions
Show diff stats
www/html/_edit_profile.html
1 | <div id="profile" class="modal"> | 1 | <div id="profile" class="modal"> |
2 | <ion-content> | 2 | <ion-content> |
3 | - <form ng-submit="updateProfile(data)" novalidate> | 3 | + <form ng-submit="updateProfile(profile)" novalidate> |
4 | <h1 class="title"> | 4 | <h1 class="title"> |
5 | <span>Editar Perfil</span> | 5 | <span>Editar Perfil</span> |
6 | <a class="back icon-left ion-reply" ng-click="closeEditProfile()">Voltar</a> | 6 | <a class="back icon-left ion-reply" ng-click="closeEditProfile()">Voltar</a> |
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | <div class="list"> | 9 | <div class="list"> |
10 | <div class="list list-inset"> | 10 | <div class="list list-inset"> |
11 | <label class="item item-input"> | 11 | <label class="item item-input"> |
12 | - <input type="text" placeholder="Nome" ng-model="data.name" /> | 12 | + <input type="text" placeholder="Nome" ng-model="profile.name" /> |
13 | </label> | 13 | </label> |
14 | 14 | ||
15 | <ng-include src="'html/_signup_person_fields.html'"></ng-include> | 15 | <ng-include src="'html/_signup_person_fields.html'"></ng-include> |
www/html/_login.html
@@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
31 | 31 | ||
32 | <!-- Login form --> | 32 | <!-- Login form --> |
33 | 33 | ||
34 | - <form ng-submit="Login(data)" ng-show="loginFormDisplayed" id="login-form"> | 34 | + <form ng-submit="Login(profile)" ng-show="loginFormDisplayed" id="login-form"> |
35 | <h1 class="title"> | 35 | <h1 class="title"> |
36 | <span>Entrar</span> | 36 | <span>Entrar</span> |
37 | <a class="back icon-left ion-reply" ng-click="backToLoginHome()">Voltar</a> | 37 | <a class="back icon-left ion-reply" ng-click="backToLoginHome()">Voltar</a> |
@@ -41,11 +41,11 @@ | @@ -41,11 +41,11 @@ | ||
41 | <div class="list list-inset"> | 41 | <div class="list list-inset"> |
42 | 42 | ||
43 | <label class="item item-input"> | 43 | <label class="item item-input"> |
44 | - <input type="text" placeholder="Usuário" ng-model="data.login"> | 44 | + <input type="text" placeholder="Usuário" ng-model="profile.login"> |
45 | </label> | 45 | </label> |
46 | 46 | ||
47 | <label class="item item-input"> | 47 | <label class="item item-input"> |
48 | - <input type="password" placeholder="Senha" ng-model="data.password"> | 48 | + <input type="password" placeholder="Senha" ng-model="profile.password"> |
49 | </label> | 49 | </label> |
50 | 50 | ||
51 | </div> | 51 | </div> |
@@ -54,7 +54,7 @@ | @@ -54,7 +54,7 @@ | ||
54 | </p> | 54 | </p> |
55 | 55 | ||
56 | <div class="login-actions"> | 56 | <div class="login-actions"> |
57 | - <a ng-click="forgotPassword(data.login)">Esqueceu a senha?</a> | 57 | + <a ng-click="forgotPassword(profile.login)">Esqueceu a senha?</a> |
58 | <a ng-click="displayRegisterForm('user')">Criar conta</a></p> | 58 | <a ng-click="displayRegisterForm('user')">Criar conta</a></p> |
59 | </div> | 59 | </div> |
60 | </div> | 60 | </div> |
@@ -62,7 +62,7 @@ | @@ -62,7 +62,7 @@ | ||
62 | 62 | ||
63 | <!-- Register form --> | 63 | <!-- Register form --> |
64 | 64 | ||
65 | - <form ng-submit="Register(data)" ng-show="registerFormDisplayed" class="register-form" novalidate id="register-form"> | 65 | + <form ng-submit="Register(profile)" ng-show="registerFormDisplayed" class="register-form" novalidate id="register-form"> |
66 | <h1 class="title"> | 66 | <h1 class="title"> |
67 | <span>Registrar</span> | 67 | <span>Registrar</span> |
68 | <a class="back icon-left ion-reply" ng-click="backToLoginHome()">Voltar</a> | 68 | <a class="back icon-left ion-reply" ng-click="backToLoginHome()">Voltar</a> |
@@ -72,12 +72,12 @@ | @@ -72,12 +72,12 @@ | ||
72 | <div class="list list-inset"> | 72 | <div class="list list-inset"> |
73 | 73 | ||
74 | <label class="item item-input"> | 74 | <label class="item item-input"> |
75 | - <input type="text" placeholder="E-mail" ng-model="data.email" required ng-blur="setLoginBasedOnEmail()" | 75 | + <input type="text" placeholder="E-mail" ng-model="profile.email" required ng-blur="setLoginBasedOnEmail()" |
76 | onblur="var $l=document.getElementById('lf'); if ($l.value == '') $l.value=ConfJuvAppUtils.normalizeLogin(this.value);"> | 76 | onblur="var $l=document.getElementById('lf'); if ($l.value == '') $l.value=ConfJuvAppUtils.normalizeLogin(this.value);"> |
77 | </label> | 77 | </label> |
78 | 78 | ||
79 | <label class="item item-input"> | 79 | <label class="item item-input"> |
80 | - <input type="text" id="lf" placeholder="Nome de usuário" required ng-model="data.login" | 80 | + <input type="text" id="lf" placeholder="Nome de usuário" required ng-model="profile.login" |
81 | onchange="this.value=ConfJuvAppUtils.normalizeLogin(this.value)"> | 81 | onchange="this.value=ConfJuvAppUtils.normalizeLogin(this.value)"> |
82 | </label> | 82 | </label> |
83 | <p><small>Espaços, letras maiúsculas ou acentos <b>não</b> são permitidos</small></p> | 83 | <p><small>Espaços, letras maiúsculas ou acentos <b>não</b> são permitidos</small></p> |
@@ -88,8 +88,8 @@ | @@ -88,8 +88,8 @@ | ||
88 | 88 | ||
89 | <p class="disclaimer">Ao se cadastrar, você concorda com os <span onclick="window.open(ConfJuvAppConfig.noosferoApiHost + '/site/terms', '_system')">Termos de Uso do Juventude.gov.br</span> e com o <span onclick="window.open(ConfJuvAppConfig.noosferoApiHost + '/' + ConfJuvAppConfig.noosferoStatutePath, '_system')">Regimento da Conferência</span></p> | 89 | <p class="disclaimer">Ao se cadastrar, você concorda com os <span onclick="window.open(ConfJuvAppConfig.noosferoApiHost + '/site/terms', '_system')">Termos de Uso do Juventude.gov.br</span> e com o <span onclick="window.open(ConfJuvAppConfig.noosferoApiHost + '/' + ConfJuvAppConfig.noosferoStatutePath, '_system')">Regimento da Conferência</span></p> |
90 | 90 | ||
91 | - <label class="item item-input"><input type="password" placeholder="Senha" ng-model="data.password"></label> | ||
92 | - <label class="item item-input"><input type="password" placeholder="Confirmar senha" ng-model="data.password_confirmation"></label> | 91 | + <label class="item item-input"><input type="password" placeholder="Senha" ng-model="profile.password"></label> |
92 | + <label class="item item-input"><input type="password" placeholder="Confirmar senha" ng-model="profile.password_confirmation"></label> | ||
93 | 93 | ||
94 | </div> | 94 | </div> |
95 | 95 |
www/html/_profile.html
@@ -13,5 +13,17 @@ | @@ -13,5 +13,17 @@ | ||
13 | 13 | ||
14 | <h2>Região</h2> | 14 | <h2>Região</h2> |
15 | <p>{{profile.region.full_name}}</p> | 15 | <p>{{profile.region.full_name}}</p> |
16 | + | ||
17 | + <h2>Orientação Sexual</h2> | ||
18 | + <p>{{profile.orientacao_sexual | orientacaoSexualFilter }}</p> | ||
19 | + | ||
20 | + <h2>Identidade de Gênero</h2> | ||
21 | + <p>{{profile.identidade_genero | generoFilter }}</p> | ||
22 | + | ||
23 | + <h2>Etnia</h2> | ||
24 | + <p>{{profile.etnia | etniaFilter}}</p> | ||
25 | + | ||
26 | + <h2><span ng-show="profile.transgenero == 'false'">Não</span> Sou transgênero</h2> | ||
27 | + | ||
16 | </ion-content> | 28 | </ion-content> |
17 | </div> | 29 | </div> |
www/html/_right_sidebar.html
@@ -4,19 +4,19 @@ | @@ -4,19 +4,19 @@ | ||
4 | <span>Filtros</span> | 4 | <span>Filtros</span> |
5 | <button menu-toggle="right" class="button button-icon icon ion-close-circled" hide-when="large"></button> | 5 | <button menu-toggle="right" class="button button-icon icon ion-close-circled" hide-when="large"></button> |
6 | </h2> | 6 | </h2> |
7 | - <h3 ng-show="user.region"> | ||
8 | - Mostrar apenas propostas de {{user.region.full_name}} | 7 | + <h3 ng-show="profile.region"> |
8 | + Mostrar apenas propostas de {{profile.region.full_name}} | ||
9 | <label class="checkbox my-city-cbox checkbox-balanced"> | 9 | <label class="checkbox my-city-cbox checkbox-balanced"> |
10 | <input type="checkbox" ng-click="loadProposalsOfMyCity()" /> | 10 | <input type="checkbox" ng-click="loadProposalsOfMyCity()" /> |
11 | </label> | 11 | </label> |
12 | </h3> | 12 | </h3> |
13 | - <form ng-submit="updateProfile(data)"> | ||
14 | - <h3 ng-show="!user.region" class="choose-city"> | 13 | + <form ng-submit="updateProfile(profile)"> |
14 | + <h3 ng-show="!profile.region" class="choose-city"> | ||
15 | <a ng-click="loadStates()">Escolha a sua cidade</a> | 15 | <a ng-click="loadStates()">Escolha a sua cidade</a> |
16 | <ng-include ng-show="states.length != 0" src="'html/_select_state.html'"></ng-include> | 16 | <ng-include ng-show="states.length != 0" src="'html/_select_state.html'"></ng-include> |
17 | </h3> | 17 | </h3> |
18 | 18 | ||
19 | - <p class="text-center" style="clear: both;" ng-show="!user.region && (cities.length != 0)"> | 19 | + <p class="text-center" style="clear: both;" ng-show="!profile.region && (cities.length != 0)"> |
20 | <button class="button" type="submit">Salvar</button> | 20 | <button class="button" type="submit">Salvar</button> |
21 | </p> | 21 | </p> |
22 | 22 |
www/html/_select_city.html
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <div class="input-label"> | 2 | <div class="input-label"> |
3 | Cidade | 3 | Cidade |
4 | </div> | 4 | </div> |
5 | - <select ng-model="data.city" ng-value="city.id" ng-options="city.name for city in cities track by city.id" class="item"> | 5 | + <select ng-model="profile.city" ng-value="profile.city.id" ng-options="city.name for city in cities track by city.id" class="item"> |
6 | <option value="">Escolha a cidade...</option> | 6 | <option value="">Escolha a cidade...</option> |
7 | </select> | 7 | </select> |
8 | </label> | 8 | </label> |
www/html/_select_state.html
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <div class="input-label"> | 2 | <div class="input-label"> |
3 | Estado | 3 | Estado |
4 | </div> | 4 | </div> |
5 | - <select ng-model="data.state" ng-value="state.id" ng-change="loadCitiesByState(data.state.id)" ng-options="state.name for state in states track by state.id" class="item"> | 5 | + <select ng-model="profile.state" ng-value="state" ng-change="loadCitiesByState(profile.state.id)" ng-options="state.name for state in states track by state.id" class="item"> |
6 | <option value="">Escolha o estado...</option> | 6 | <option value="">Escolha o estado...</option> |
7 | </select> | 7 | </select> |
8 | </label> | 8 | </label> |
www/html/_signup_person_fields.html
@@ -2,12 +2,12 @@ | @@ -2,12 +2,12 @@ | ||
2 | <div> | 2 | <div> |
3 | <label> | 3 | <label> |
4 | <div class="input-label"> | 4 | <div class="input-label"> |
5 | - Identidade de Gênero | 5 | + Identidade de Gênero |
6 | </div> | 6 | </div> |
7 | - <select ng-model="data.identidade_genero" required class="item"> | 7 | + <select ng-model="profile.identidade_genero" required class="item"> |
8 | <option value="">Identidade de Gênero</option> | 8 | <option value="">Identidade de Gênero</option> |
9 | - <option value="1">Masculino</option> | ||
10 | - <option value="2">Feminino</option> | 9 | + <option value="1">{{ 1 | generoFilter }}</option> |
10 | + <option value="2">{{ 2 | generoFilter }}</option> | ||
11 | </select> | 11 | </select> |
12 | </label> | 12 | </label> |
13 | </div> | 13 | </div> |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | <ul class="list" id="transgender"> | 16 | <ul class="list" id="transgender"> |
17 | <li class="item item-checkbox"> | 17 | <li class="item item-checkbox"> |
18 | <label class="checkbox"> | 18 | <label class="checkbox"> |
19 | - <input type="checkbox" ng-model="data.transgenero" class="ckbox"> | 19 | + <input type="checkbox" ng-model="profile.transgenero" ng-true-value="'true'" class="ckbox"> |
20 | </label> | 20 | </label> |
21 | Sou transgênero | 21 | Sou transgênero |
22 | </li> | 22 | </li> |
@@ -28,13 +28,13 @@ | @@ -28,13 +28,13 @@ | ||
28 | <div class="input-label"> | 28 | <div class="input-label"> |
29 | Raça/Etnia | 29 | Raça/Etnia |
30 | </div> | 30 | </div> |
31 | - <select ng-model="data.etnia" required class="item"> | 31 | + <select ng-model="profile.etnia" required class="item" > |
32 | <option value="">Raça / Etnia</option> | 32 | <option value="">Raça / Etnia</option> |
33 | - <option value="1">Pardo</option> | ||
34 | - <option value="2">Preto</option> | ||
35 | - <option value="3">Branco</option> | ||
36 | - <option value="4">Indígena</option> | ||
37 | - <option value="5">Amarelo</option> | 33 | + <option value="1">{{ 1 | etniaFilter}}</option> |
34 | + <option value="2">{{ 2 | etniaFilter}}</option> | ||
35 | + <option value="3">{{ 3 | etniaFilter}}</option> | ||
36 | + <option value="4">{{ 4 | etniaFilter}}</option> | ||
37 | + <option value="5">{{ 5 | etniaFilter}}</option> | ||
38 | </select> | 38 | </select> |
39 | </label> | 39 | </label> |
40 | </div> | 40 | </div> |
@@ -44,12 +44,12 @@ | @@ -44,12 +44,12 @@ | ||
44 | <div class="input-label"> | 44 | <div class="input-label"> |
45 | Orientação Sexual | 45 | Orientação Sexual |
46 | </div> | 46 | </div> |
47 | - <select ng-model="data.orientacao_sexual" required class="item"> | 47 | + <select ng-model="profile.orientacao_sexual" required class="item"> |
48 | <option value="">Orientação Sexual</option> | 48 | <option value="">Orientação Sexual</option> |
49 | - <option value="1">Homosexual</option> | ||
50 | - <option value="2">Heterosexual</option> | ||
51 | - <option value="3">Bisexual</option> | ||
52 | - <option value="4">Assexual</option> | 49 | + <option value="1">{{ 1 | orientacaoSexualFilter}}</option> |
50 | + <option value="2">{{ 2 | orientacaoSexualFilter}}</option> | ||
51 | + <option value="3">{{ 3 | orientacaoSexualFilter}}</option> | ||
52 | + <option value="4">{{ 4 | orientacaoSexualFilter}}</option> | ||
53 | </select> | 53 | </select> |
54 | </label> | 54 | </label> |
55 | </div> | 55 | </div> |
www/index.html
@@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
48 | </ion-side-menu-content> | 48 | </ion-side-menu-content> |
49 | 49 | ||
50 | <ion-side-menu side="right" aside-expose-right="large"> | 50 | <ion-side-menu side="right" aside-expose-right="large"> |
51 | - <ng-include src="'html/_right_sidebar.html?10'"></ng-include> | 51 | + <ng-include src="'html/_right_sidebar.html?11'"></ng-include> |
52 | </ion-side-menu> | 52 | </ion-side-menu> |
53 | </ion-side-menus> | 53 | </ion-side-menus> |
54 | 54 |
www/js/controllers.js
@@ -34,7 +34,7 @@ angular.module('confjuvapp.controllers', []) | @@ -34,7 +34,7 @@ angular.module('confjuvapp.controllers', []) | ||
34 | // Function to open the modal | 34 | // Function to open the modal |
35 | $scope.openModal = function() { | 35 | $scope.openModal = function() { |
36 | if (ConfJuvAppUtils.getPrivateToken()) { | 36 | if (ConfJuvAppUtils.getPrivateToken()) { |
37 | - $scope.loadMe(); | 37 | + $scope.loadProfile(); |
38 | } else if ($scope.modal) { | 38 | } else if ($scope.modal) { |
39 | $scope.modal.show(); | 39 | $scope.modal.show(); |
40 | } else { | 40 | } else { |
@@ -88,6 +88,7 @@ angular.module('confjuvapp.controllers', []) | @@ -88,6 +88,7 @@ angular.module('confjuvapp.controllers', []) | ||
88 | // Function to logout | 88 | // Function to logout |
89 | $scope.logout = function() { | 89 | $scope.logout = function() { |
90 | ConfJuvAppUtils.setPrivateToken(null); | 90 | ConfJuvAppUtils.setPrivateToken(null); |
91 | + $scope.profile = null; | ||
91 | $scope.openModal(); | 92 | $scope.openModal(); |
92 | }; | 93 | }; |
93 | 94 | ||
@@ -120,7 +121,7 @@ angular.module('confjuvapp.controllers', []) | @@ -120,7 +121,7 @@ angular.module('confjuvapp.controllers', []) | ||
120 | .then(function(resp) { | 121 | .then(function(resp) { |
121 | $scope.closeModal(); | 122 | $scope.closeModal(); |
122 | var popup = $ionicPopup.alert({ title: 'Login', template: 'Login efetuado com sucesso!' }); | 123 | var popup = $ionicPopup.alert({ title: 'Login', template: 'Login efetuado com sucesso!' }); |
123 | - $scope.user = resp.data.person; | 124 | + $scope.profile = resp.data.person; |
124 | popup.then(function() { | 125 | popup.then(function() { |
125 | $scope.loginCallback(resp.data.private_token); | 126 | $scope.loginCallback(resp.data.private_token); |
126 | }); | 127 | }); |
@@ -219,7 +220,6 @@ angular.module('confjuvapp.controllers', []) | @@ -219,7 +220,6 @@ angular.module('confjuvapp.controllers', []) | ||
219 | }, | 220 | }, |
220 | timeout: 10000 | 221 | timeout: 10000 |
221 | } | 222 | } |
222 | - | ||
223 | var params = { | 223 | var params = { |
224 | 'email': data.email, | 224 | 'email': data.email, |
225 | 'login': data.login, | 225 | 'login': data.login, |
@@ -273,56 +273,6 @@ angular.module('confjuvapp.controllers', []) | @@ -273,56 +273,6 @@ angular.module('confjuvapp.controllers', []) | ||
273 | }); | 273 | }); |
274 | }; | 274 | }; |
275 | 275 | ||
276 | - // Load Me | ||
277 | - $scope.loadMe = function() { | ||
278 | - $scope.loading = true; | ||
279 | - | ||
280 | - var params = '?private_token=' + ConfJuvAppUtils.getPrivateToken(), | ||
281 | - path = 'people/me/' + params; | ||
282 | - | ||
283 | - $http.get(ConfJuvAppUtils.pathTo(path)) | ||
284 | - .then(function(resp) { | ||
285 | - $scope.user = resp.data.person; | ||
286 | - $scope.loginCallback(ConfJuvAppUtils.getPrivateToken()); | ||
287 | - $scope.loading = false; | ||
288 | - }, function(err) { | ||
289 | - $scope.token = ConfJuvAppUtils.setPrivateToken(null); | ||
290 | - $scope.loggedIn = false; | ||
291 | - var popup = $ionicPopup.alert({ title: 'Usuário', template: 'Sessão expirada. Por favor faça login novamente.' }); | ||
292 | - popup.then(function() { | ||
293 | - $scope.openModal(); | ||
294 | - }); | ||
295 | - $scope.loading = false; | ||
296 | - }); | ||
297 | - }; | ||
298 | - | ||
299 | - // Submit the profile | ||
300 | - $scope.updateProfile = function(data) { | ||
301 | - $scope.loading = true; | ||
302 | - var config = { | ||
303 | - headers: { | ||
304 | - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | ||
305 | - }, | ||
306 | - timeout: 10000 | ||
307 | - }; | ||
308 | - var params = { | ||
309 | - 'private_token': $scope.token, | ||
310 | - 'person[region_id]': data.city.id | ||
311 | - }; | ||
312 | - | ||
313 | - $http.post(ConfJuvAppUtils.pathTo('people/' + $scope.user.id), jQuery.param(params), config) | ||
314 | - .then(function(resp) { | ||
315 | - $scope.user = resp.data.person; | ||
316 | - var popup = $ionicPopup.alert({ title: 'Atualizar Usuário', template: 'Usuário atualizado com sucesso!' }); | ||
317 | - popup.then(function() { | ||
318 | - $scope.loading = false; | ||
319 | - }); | ||
320 | - }, function(err) { | ||
321 | - var popup = $ionicPopup.alert({ title: 'Atualizar Usuário', template: 'Erro ao atualizar usuário!' }); | ||
322 | - $scope.loading = false; | ||
323 | - }); | ||
324 | - }; | ||
325 | - | ||
326 | $scope.backToLoginHome = function() { | 276 | $scope.backToLoginHome = function() { |
327 | $scope.registerFormDisplayed = false; | 277 | $scope.registerFormDisplayed = false; |
328 | $scope.loginFormDisplayed = false; | 278 | $scope.loginFormDisplayed = false; |
@@ -346,6 +296,9 @@ angular.module('confjuvapp.controllers', []) | @@ -346,6 +296,9 @@ angular.module('confjuvapp.controllers', []) | ||
346 | $http.get(ConfJuvAppUtils.pathTo(path)) | 296 | $http.get(ConfJuvAppUtils.pathTo(path)) |
347 | .then(function(resp) { | 297 | .then(function(resp) { |
348 | $scope.states = resp.data; | 298 | $scope.states = resp.data; |
299 | + if($scope.profile && $scope.profile.state){ | ||
300 | + $scope.loadCitiesByState($scope.profile.state.id) | ||
301 | + } | ||
349 | $scope.loading = false; | 302 | $scope.loading = false; |
350 | }, function(err) { | 303 | }, function(err) { |
351 | $ionicPopup.alert({ title: 'Estados', template: 'Não foi possível carregar os estados' }); | 304 | $ionicPopup.alert({ title: 'Estados', template: 'Não foi possível carregar os estados' }); |
@@ -356,7 +309,6 @@ angular.module('confjuvapp.controllers', []) | @@ -356,7 +309,6 @@ angular.module('confjuvapp.controllers', []) | ||
356 | // Load Cities | 309 | // Load Cities |
357 | $scope.loadCitiesByState = function(state_id) { | 310 | $scope.loadCitiesByState = function(state_id) { |
358 | $scope.loading = true; | 311 | $scope.loading = true; |
359 | - | ||
360 | var path = 'states/' + state_id + '/cities'; | 312 | var path = 'states/' + state_id + '/cities'; |
361 | 313 | ||
362 | $http.get(ConfJuvAppUtils.pathTo(path)) | 314 | $http.get(ConfJuvAppUtils.pathTo(path)) |
@@ -430,7 +382,7 @@ angular.module('confjuvapp.controllers', []) | @@ -430,7 +382,7 @@ angular.module('confjuvapp.controllers', []) | ||
430 | $scope.loadProposalsOfMyCity = function() { | 382 | $scope.loadProposalsOfMyCity = function() { |
431 | $scope.loading = true; | 383 | $scope.loading = true; |
432 | if($scope.proposalsFilter == ''){ | 384 | if($scope.proposalsFilter == ''){ |
433 | - $scope.proposalsFilter = '&categories_ids=' + $scope.user.region.id; | 385 | + $scope.proposalsFilter = '&categories_ids=' + $scope.profile.region.id; |
434 | }else{ | 386 | }else{ |
435 | $scope.proposalsFilter = ''; | 387 | $scope.proposalsFilter = ''; |
436 | } | 388 | } |
@@ -647,7 +599,7 @@ angular.module('confjuvapp.controllers', []) | @@ -647,7 +599,7 @@ angular.module('confjuvapp.controllers', []) | ||
647 | body: data.description, | 599 | body: data.description, |
648 | topic: topic, | 600 | topic: topic, |
649 | categories: [data.city, data.state], | 601 | categories: [data.city, data.state], |
650 | - author: { name: $scope.user.name, id: $scope.user.id } | 602 | + author: { name: $scope.profile.name, id: $scope.profile.id } |
651 | }; | 603 | }; |
652 | $scope.cards.push(proposal); | 604 | $scope.cards.push(proposal); |
653 | $scope.myProposals.push(proposal); | 605 | $scope.myProposals.push(proposal); |
@@ -741,7 +693,7 @@ angular.module('confjuvapp.controllers', []) | @@ -741,7 +693,7 @@ angular.module('confjuvapp.controllers', []) | ||
741 | if (!$scope.proposal.comments) { | 693 | if (!$scope.proposal.comments) { |
742 | $scope.proposal.comments = []; | 694 | $scope.proposal.comments = []; |
743 | } | 695 | } |
744 | - $scope.proposal.comments.unshift({ body: params.body, author: { name: $scope.user.name }}); | 696 | + $scope.proposal.comments.unshift({ body: params.body, author: { name: $scope.profile.name }}); |
745 | $scope.commentStatus = ''; | 697 | $scope.commentStatus = ''; |
746 | popup.then(function() { | 698 | popup.then(function() { |
747 | $scope.loading = false; | 699 | $scope.loading = false; |
@@ -1199,19 +1151,25 @@ angular.module('confjuvapp.controllers', []) | @@ -1199,19 +1151,25 @@ angular.module('confjuvapp.controllers', []) | ||
1199 | 1151 | ||
1200 | $scope.profile = null; | 1152 | $scope.profile = null; |
1201 | 1153 | ||
1154 | + // Load Profile | ||
1202 | $scope.loadProfile = function() { | 1155 | $scope.loadProfile = function() { |
1203 | $scope.loading = true; | 1156 | $scope.loading = true; |
1204 | 1157 | ||
1205 | - var path = 'people/me?private_token=' + ConfJuvAppUtils.getPrivateToken(); | 1158 | + var params = '?private_token=' + ConfJuvAppUtils.getPrivateToken(), |
1159 | + path = 'people/me/' + params; | ||
1206 | 1160 | ||
1207 | $http.get(ConfJuvAppUtils.pathTo(path)) | 1161 | $http.get(ConfJuvAppUtils.pathTo(path)) |
1208 | .then(function(resp) { | 1162 | .then(function(resp) { |
1209 | $scope.profile = resp.data.person; | 1163 | $scope.profile = resp.data.person; |
1210 | - if ($scope.data == null) $scope.data = {}; | ||
1211 | - $scope.data.name = $scope.profile.name; | 1164 | + $scope.loginCallback(ConfJuvAppUtils.getPrivateToken()); |
1212 | $scope.loading = false; | 1165 | $scope.loading = false; |
1213 | }, function(err) { | 1166 | }, function(err) { |
1214 | - $ionicPopup.alert({ title: 'Perfil', template: 'Não foi possível carregar o perfil' }); | 1167 | + $scope.token = ConfJuvAppUtils.setPrivateToken(null); |
1168 | + $scope.loggedIn = false; | ||
1169 | + var popup = $ionicPopup.alert({ title: 'Usuário', template: 'Sessão expirada. Por favor faça login novamente.' }); | ||
1170 | + popup.then(function() { | ||
1171 | + $scope.openModal(); | ||
1172 | + }); | ||
1215 | $scope.loading = false; | 1173 | $scope.loading = false; |
1216 | }); | 1174 | }); |
1217 | }; | 1175 | }; |
@@ -1274,7 +1232,7 @@ angular.module('confjuvapp.controllers', []) | @@ -1274,7 +1232,7 @@ angular.module('confjuvapp.controllers', []) | ||
1274 | $scope.editProfileModal.remove(); | 1232 | $scope.editProfileModal.remove(); |
1275 | }); | 1233 | }); |
1276 | 1234 | ||
1277 | - $scope.updateProfile = function(data) { | 1235 | + $scope.updateProfile = function(profile) { |
1278 | $scope.loading = true; | 1236 | $scope.loading = true; |
1279 | 1237 | ||
1280 | var config = { | 1238 | var config = { |
@@ -1282,22 +1240,25 @@ angular.module('confjuvapp.controllers', []) | @@ -1282,22 +1240,25 @@ angular.module('confjuvapp.controllers', []) | ||
1282 | 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | 1240 | 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', |
1283 | }, | 1241 | }, |
1284 | timeout: 10000 | 1242 | timeout: 10000 |
1285 | - } | 1243 | + }; |
1286 | 1244 | ||
1287 | var params = { | 1245 | var params = { |
1288 | 'private_token': $scope.token, | 1246 | 'private_token': $scope.token, |
1289 | - 'person[name]': data.name, | ||
1290 | - 'person[orientacao_sexual]': data.orientacao_sexual, | ||
1291 | - 'person[identidade_genero]': data.identidade_genero, | ||
1292 | - 'person[transgenero]': data.transgenero, | ||
1293 | - 'person[etnia]': data.etnia, | ||
1294 | - 'person[city]': data.city.id | 1247 | + 'person[name]': profile.name, |
1248 | + 'person[orientacao_sexual]': profile.orientacao_sexual, | ||
1249 | + 'person[identidade_genero]': profile.identidade_genero, | ||
1250 | + 'person[transgenero]': profile.transgenero, | ||
1251 | + 'person[etnia]': profile.etnia, | ||
1252 | + 'person[city]': profile.city.id | ||
1295 | }; | 1253 | }; |
1296 | 1254 | ||
1297 | - $http.post(ConfJuvAppUtils.pathTo('people'), jQuery.param(params), config) | 1255 | + $http.post(ConfJuvAppUtils.pathTo('people/' + $scope.profile.id), jQuery.param(params), config) |
1298 | .then(function(resp) { | 1256 | .then(function(resp) { |
1299 | - $scope.profile = { name: data.name }; | ||
1300 | - $ionicPopup.alert({ title: 'Perfil', template: 'Perfil atualizado com sucesso' }); | 1257 | + $scope.profile = resp.data.person; |
1258 | + var popup = $ionicPopup.alert({ title: 'Perfil', template: 'Perfil atualizado com sucesso' }); | ||
1259 | + popup.then(function() { | ||
1260 | + $scope.loading = false; | ||
1261 | + }); | ||
1301 | $scope.loading = false; | 1262 | $scope.loading = false; |
1302 | }, function(err) { | 1263 | }, function(err) { |
1303 | $ionicPopup.alert({ title: 'Perfil', template: 'Erro ao atualizar perfil' }); | 1264 | $ionicPopup.alert({ title: 'Perfil', template: 'Erro ao atualizar perfil' }); |
@@ -1322,26 +1283,21 @@ angular.module('confjuvapp.controllers', []) | @@ -1322,26 +1283,21 @@ angular.module('confjuvapp.controllers', []) | ||
1322 | timeout: 10000 | 1283 | timeout: 10000 |
1323 | }; | 1284 | }; |
1324 | 1285 | ||
1325 | - var path = 'articles?private_token=' + $scope.token + '&fields=title,image,body,abstract,id,tag_list,categories,created_by&content_type=ProposalsDiscussionPlugin::Proposal&_=' + (new Date().getTime()) + '&parent_id='; | 1286 | + var path = 'articles?private_token=' + $scope.token + '&fields=title,image,body,abstract,id,tag_list,categories,created_by&content_type=ProposalsDiscussionPlugin::Proposal&_=' + (new Date().getTime()) + '&author_id=' + $scope.profile.id + '&parent_id[]='; |
1326 | 1287 | ||
1327 | for (var i = 0; i < $scope.topics.length; i++) { | 1288 | for (var i = 0; i < $scope.topics.length; i++) { |
1328 | - $scope.loading = true; | ||
1329 | - | ||
1330 | - $http.get(ConfJuvAppUtils.pathTo(path + $scope.topics[i].id), config) | ||
1331 | - .then(function(resp) { | ||
1332 | - var articles = resp.data.articles; | ||
1333 | - for (var j = 0; j < articles.length; j++) { | ||
1334 | - var article = articles[j]; | ||
1335 | - if (article.author.id === $scope.user.id) { | ||
1336 | - $scope.myProposals.push(article); | ||
1337 | - $scope.cards = $scope.myProposals.slice(); | ||
1338 | - } | ||
1339 | - } | ||
1340 | - $scope.loading = false; | ||
1341 | - }, function(err) { | ||
1342 | - $scope.loading = false; | ||
1343 | - }); | ||
1344 | - } | 1289 | + path += '&parent_id[]=' + $scope.topics[i].id; |
1290 | + } | ||
1291 | + $scope.loading = true; | ||
1292 | + | ||
1293 | + $http.get(ConfJuvAppUtils.pathTo(path), config) | ||
1294 | + .then(function(resp) { | ||
1295 | + $scope.myProposals = resp.data.articles; | ||
1296 | + $scope.cards = $scope.myProposals.slice(); | ||
1297 | + $scope.loading = false; | ||
1298 | + }, function(err) { | ||
1299 | + $scope.loading = false; | ||
1300 | + }); | ||
1345 | } | 1301 | } |
1346 | else { | 1302 | else { |
1347 | $scope.cards = $scope.myProposals.slice(); | 1303 | $scope.cards = $scope.myProposals.slice(); |
www/js/filters.js
@@ -17,4 +17,33 @@ filter('tagFilter', function() { | @@ -17,4 +17,33 @@ filter('tagFilter', function() { | ||
17 | return function(text) { | 17 | return function(text) { |
18 | return String(text).replace(/#/gm, ''); | 18 | return String(text).replace(/#/gm, ''); |
19 | }; | 19 | }; |
20 | +}). | ||
21 | +filter('etniaFilter', function() { | ||
22 | + return function(type) { | ||
23 | + var etnia = {}; | ||
24 | + etnia[1] = 'Pardo'; | ||
25 | + etnia[2] = 'Preto'; | ||
26 | + etnia[3] = 'Branco'; | ||
27 | + etnia[4] = 'Indígena'; | ||
28 | + etnia[5] = 'Amarelo'; | ||
29 | + return etnia[type]; | ||
30 | + }; | ||
31 | +}). | ||
32 | +filter('orientacaoSexualFilter', function() { | ||
33 | + return function(type) { | ||
34 | + var orientacao = {}; | ||
35 | + orientacao[1] = 'Homosexual'; | ||
36 | + orientacao[2] = 'Heterosexual'; | ||
37 | + orientacao[3] = 'Bisexual'; | ||
38 | + orientacao[4] = 'Assexual'; | ||
39 | + return orientacao[type]; | ||
40 | + }; | ||
41 | +}). | ||
42 | +filter('generoFilter', function() { | ||
43 | + return function(type) { | ||
44 | + var genero = {}; | ||
45 | + genero[1] = 'Masculino'; | ||
46 | + genero[2] = 'Feminino'; | ||
47 | + return genero[type]; | ||
48 | + }; | ||
20 | }); | 49 | }); |