Commit ee273c864620c3d0b7418c58234d31911926f86e

Authored by Leonardo Merlin
1 parent cd9dd7a8

Add feedback messages to 'cadastro-proposta'

src/app/index.constants.js
... ... @@ -33,15 +33,24 @@
33 33 notAuthorized: 'auth-not-authorized'
34 34 })
35 35 .constant('VOTE_STATUS', {
36   - SUCCESS: 0x1,
37   - ERROR: 0x10,
38   - LOADING: 0x100
  36 + SUCCESS: 1,
  37 + ERROR: 2,
  38 + LOADING: 4,
  39 + LOADED: 8
39 40 })
40 41 .constant('VOTE_OPTIONS', {
41 42 UP: 1,
42 43 DOWN: -1,
43 44 SKIP: 0
44 45 })
  46 + .constant('PROPOSAL_STATUS', {
  47 + SUCCESS: 1,
  48 + ERROR: 2,
  49 + LOADING: 4,
  50 + LOADED: 8,
  51 + SENDING: 16,
  52 + SENT: 32
  53 + })
45 54 .constant('USER_ROLES', {
46 55 all: '*',
47 56 admin: 'admin',
... ...
src/app/pages/programas/programa.controller.js
... ... @@ -6,12 +6,13 @@
6 6 .controller('ProgramaPageController', ProgramaPageController);
7 7  
8 8 /** @ngInject */
9   - function ProgramaPageController(DialogaService, PATH, VOTE_OPTIONS, $state, $location, $scope, $rootScope, $element, $timeout, $log) {
  9 + function ProgramaPageController(DialogaService, PATH, VOTE_OPTIONS, PROPOSAL_STATUS, $state, $location, $scope, $rootScope, $element, $timeout, $log) {
10 10 var vm = this;
11 11  
12 12 vm.DialogaService = DialogaService;
13 13 vm.PATH = PATH;
14 14 vm.VOTE_OPTIONS = VOTE_OPTIONS;
  15 + vm.PROPOSAL_STATUS = PROPOSAL_STATUS;
15 16 vm.$state = $state;
16 17 vm.$location = $location;
17 18 vm.$scope = $scope;
... ... @@ -47,6 +48,7 @@
47 48 var vm = this;
48 49  
49 50 vm.loading = true;
  51 + vm.proposalStatus = null;
50 52  
51 53 // Get program by slug
52 54 var slug = vm.$state.params.slug;
... ... @@ -110,13 +112,17 @@
110 112 });
111 113  
112 114 vm.$scope.$on('cadastro-proposa:startSendProposal', function(event, proposal) {
113   - vm.creatingProposal = true;
  115 +
  116 + vm.proposalStatus = vm.PROPOSAL_STATUS.SENDING;
  117 +
114 118 vm.DialogaService.createProposal(proposal, vm.article.id, function(response) {
115 119 vm.$log.debug('response', response);
116   - vm.creatingProposal = false;
  120 + // vm.proposalStatus = vm.PROPOSAL_STATUS.SENT | vm.PROPOSAL_STATUS.SUCCESS;
  121 + vm.proposalStatus = vm.PROPOSAL_STATUS.SUCCESS;
117 122 }, function(error) {
118 123 vm.$log.error(error);
119   - vm.creatingProposal = false;
  124 + // vm.proposalStatus = vm.PROPOSAL_STATUS.SENT | vm.PROPOSAL_STATUS.ERROR;
  125 + vm.proposalStatus = vm.PROPOSAL_STATUS.ERROR;
120 126 });
121 127 });
122 128  
... ... @@ -254,9 +260,15 @@
254 260 vm.$element.find(rule).slideUp();
255 261 };
256 262  
257   - ProgramaPageController.prototype.sendProposal = function() {
  263 + ProgramaPageController.prototype.sendAnotherProposal = function() {
258 264 var vm = this;
259 265  
260   - vm.$log.warn('Not implemented yet: "sendProposal"');
  266 + vm.proposalStatus = null;
261 267 };
  268 +
  269 + // ProgramaPageController.prototype.sendProposal = function() {
  270 + // var vm = this;
  271 +
  272 + // vm.$log.warn('Not implemented yet: "sendProposal"');
  273 + // };
262 274 })();
... ...
src/app/pages/programas/programa.html
... ... @@ -138,16 +138,34 @@
138 138 title="'Você não está logado!'"
139 139 message="'Você precisa estar logado para enviar uma proposta.'"
140 140 ></show-message>
141   - <div class="row">
142   - <div class="col-sm-4"></div>
143   - <div class="col-sm-8 text-center-sm">
144   - <a ui-sref="entrar({redirect_uri: pagePrograma.sendProposalRedirectURI})">Clique aqui para ir para a página de login</a>
145   - </div>
  141 + <div class="row">
  142 + <div class="col-sm-4"></div>
  143 + <div class="col-sm-8 text-center-sm">
  144 + <a ui-sref="entrar({redirect_uri: pagePrograma.sendProposalRedirectURI})">Clique aqui para ir para a página de login</a>
146 145 </div>
  146 + </div>
147 147 </div>
148 148 <div ng-if="pagePrograma.$rootScope.currentUser">
149 149 <div class="proposal-extended-section-content">
150   - <cadastro-proposta program="pagePrograma.article"></cadastro-proposta>
  150 + <div ng-if="pagePrograma.proposalStatus === pagePrograma.PROPOSAL_STATUS.SUCCESS">
  151 + <show-message
  152 + type="'success'"
  153 + title="'Proposta enviada com sucesso!'"
  154 + message="'Sua proposta foi enviada para a nossa equipe de moderação. Em aproximadamente 72 horas você receberá em seu endereço de e-mail uma resposta sobre a sua proposta.'"
  155 + ></show-message>
  156 + <div class="row">
  157 + <div class="col-sm-4"></div>
  158 + <div class="col-sm-8 text-center-sm">
  159 + <button type="button" class="btn btn-link" ng-click="pagePrograma.sendAnotherProposal()">
  160 + Clique aqui para enviar outra proposta
  161 + </button>
  162 + </div>
  163 + </div>
  164 + </div>
  165 + <div ng-if="pagePrograma.proposalStatus === pagePrograma.PROPOSAL_STATUS.ERROR"></div>
  166 + <div ng-if="!pagePrograma.proposalStatus">
  167 + <cadastro-proposta program="pagePrograma.article" status="pagePrograma.proposalStatus"></cadastro-proposta>
  168 + </div>
151 169 </div>
152 170 </div>
153 171 </div>
... ...