From 3221d07dc183376381e81b22aac07a3fd25227d7 Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Tue, 12 Feb 2019 10:32:00 -0300 Subject: [PATCH 01/44] Updating the design of events timeline --- frontend/event/event.css | 13 +++++++++++-- frontend/event/events_mobile.html | 21 +++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/frontend/event/event.css b/frontend/event/event.css index 027165ed0..ffa680f35 100644 --- a/frontend/event/event.css +++ b/frontend/event/event.css @@ -206,7 +206,7 @@ .events-grid { display: grid; grid-template-columns: 20% 78% auto; - grid-template-rows: 9em auto; + grid-template-rows: auto; align-items: initial; margin: 0; } @@ -245,7 +245,7 @@ grid-column-end: 3; } - .event-preview-image { + .event-preview-image, .event-preview-without-image { max-height: 8em; height: 8em; max-width: 100%; @@ -255,10 +255,19 @@ background-color: #009688; } + .event-preview-without-image { + max-height: 3.5em; + } + .event-preview-border { border-left: 0.55em solid; } + .event-button-margin { + position: fixed !important; + margin-bottom: 3.5em; + } + .highlight { background:rgba(0,0,0,0.65); position: absolute; diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index 9b0ea6261..4ab5e9b10 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -35,7 +35,8 @@

Nenhum evento a ser exibido.

ng-click="eventCtrl.goToEvent(event)">
- +
{{ event.title | uppercase}} @@ -56,13 +57,13 @@

Nenhum evento a ser exibido.

+ + + + add + + +
- - - - add - - - \ No newline at end of file From 5c0535e753da045f7a4357b058b782648666bbf9 Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Thu, 14 Feb 2019 09:47:32 -0300 Subject: [PATCH 02/44] Adding correct verification to show message --- frontend/event/events_mobile.html | 2 +- frontend/search/search_event_mobile.html | 54 ++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 frontend/search/search_event_mobile.html diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index 52b5f0697..05c1ed35b 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -4,7 +4,7 @@
- +

Nenhum evento a ser exibido.

diff --git a/frontend/search/search_event_mobile.html b/frontend/search/search_event_mobile.html new file mode 100644 index 000000000..c85412840 --- /dev/null +++ b/frontend/search/search_event_mobile.html @@ -0,0 +1,54 @@ + +
+ + clear + + PESQUISAR +
+
+
+ + + + +
+
+
+ Pesquisa avançada +
+
+ + + + {{actuation_area.name}} + + + + + + + {{nature.name}} + + + + + + + {{state.nome}} + + + +
+
+ + CANCELAR + + + PESQUISAR + +
+
\ No newline at end of file From 710ee6c6e9e867f8508f463230dbb126c3748441 Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Tue, 19 Feb 2019 17:55:57 -0300 Subject: [PATCH 03/44] Showing canceled events --- backend/handlers/event_collection_handler.py | 4 +- frontend/event/event.css | 10 ++++ frontend/event/events_mobile.html | 9 +++- frontend/search/search_event_mobile.html | 54 -------------------- 4 files changed, 20 insertions(+), 57 deletions(-) delete mode 100644 frontend/search/search_event_mobile.html diff --git a/backend/handlers/event_collection_handler.py b/backend/handlers/event_collection_handler.py index 125ee8da4..491483b3b 100644 --- a/backend/handlers/event_collection_handler.py +++ b/backend/handlers/event_collection_handler.py @@ -56,8 +56,8 @@ def get_filtered_events(filters, user): december = month == 12 begin_selected_month_utc = datetime(year, month, 1, 3) end_selected_month_utc = datetime(year if not december else year+1, month+1 if not december else 1, 1, 3) - query = ndb.gql("SELECT __key__ FROM Event WHERE institution_key IN :1 AND state =:2 AND start_time < DATETIME(:3)", - user.follows, 'published', end_selected_month_utc.strftime("%Y-%m-%d %H:%M:%S")) + query = ndb.gql("SELECT __key__ FROM Event WHERE institution_key IN :1 AND start_time < DATETIME(:2)", + user.follows, end_selected_month_utc.strftime("%Y-%m-%d %H:%M:%S")) if query.count() > 0: return ndb.gql("SELECT * FROM Event WHERE __key__ IN :1 AND end_time >= DATETIME(:2)", query.fetch(), begin_selected_month_utc.strftime("%Y-%m-%d %H:%M:%S")).order(Event.end_time, Event.key) diff --git a/frontend/event/event.css b/frontend/event/event.css index ac2e1959b..15beba31f 100644 --- a/frontend/event/event.css +++ b/frontend/event/event.css @@ -523,6 +523,16 @@ color:#009688; } + .event-canceled-tag, .event-canceled-icon { + color: white; + + } + + .event-canceled-tag { + margin-right: 2em; + margin-left: -1em; + } + @media screen and (min-height: 600px) { .event-links-fields { max-height: 13em; diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index c27068fe1..5280dfce5 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -22,8 +22,15 @@ ng-click="eventCtrl.goToEvent(event)">
- +
+ + highlight_off +
ESTE EVENTO FOI CANCELADO
+
+
{{ event.title | uppercase}} diff --git a/frontend/search/search_event_mobile.html b/frontend/search/search_event_mobile.html deleted file mode 100644 index c85412840..000000000 --- a/frontend/search/search_event_mobile.html +++ /dev/null @@ -1,54 +0,0 @@ - -
- - clear - - PESQUISAR -
-
-
- - - - -
-
-
- Pesquisa avançada -
-
- - - - {{actuation_area.name}} - - - - - - - {{nature.name}} - - - - - - - {{state.nome}} - - - -
-
- - CANCELAR - - - PESQUISAR - -
-
\ No newline at end of file From 5f83c3c769e60fa79fd048087bd9c96ec447ebb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Wed, 27 Feb 2019 08:03:19 -0300 Subject: [PATCH 04/44] Add request_state_email template --- backend/templates/request_state_email.html | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 backend/templates/request_state_email.html diff --git a/backend/templates/request_state_email.html b/backend/templates/request_state_email.html new file mode 100644 index 000000000..a580a362b --- /dev/null +++ b/backend/templates/request_state_email.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ + + + + +
+
+
+
+
+
+ +
+
+
+ AQUI ESTÁ O LINK QUE VOCÊ SOLICITOU +
+
+
+ + VOCÊ SOLICITOU O LINK DE UM FORMULARIO DA PLATAFORMA PARA PREENCHE-LO DEPOIS E AQUI ESTÁ ELE. CLIQUE NO BOTÃO ABAIXO PARA ACESSA-LO. + +
+ +
+
+
+
+
+
+ + + + + +
+ + +
+ + + + + +
+
+
+
+ + +
+
+ +
+
+ +
+
+ + Copyright © 2017 Plataforma CIS - Ministério da Saúde. + +
+
+ + Todos os direitos reservados. + +
+
+
+
+
+
+
+ + + From d64a4f287ad5063ddb32273492c1a2898f8815b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Wed, 27 Feb 2019 08:03:45 -0300 Subject: [PATCH 05/44] Add request_state_email_sender to send_email_hierarchy --- backend/send_email_hierarchy/__init__.py | 5 +-- .../request_state_email_sender.py | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 backend/send_email_hierarchy/request_state_email_sender.py diff --git a/backend/send_email_hierarchy/__init__.py b/backend/send_email_hierarchy/__init__.py index 910a0cd11..3a2a4db30 100644 --- a/backend/send_email_hierarchy/__init__.py +++ b/backend/send_email_hierarchy/__init__.py @@ -10,13 +10,14 @@ from .request_link_email_sender import * from .request_user_email_sender import * from .transfer_admin_email_sender import * - +from .request_state_email_sender import * email_modules = [ email_sender, request_institution_email_sender, invite_institution_email_sender, invite_user_email_sender, leave_institution_email_sender, remove_institution_email_sender, remove_member_email_sender, - request_link_email_sender, request_user_email_sender, transfer_admin_email_sender + request_link_email_sender, request_user_email_sender, transfer_admin_email_sender, + request_state_email_sender ] __all__ = [prop for email_module in email_modules for prop in email_module.__all__] \ No newline at end of file diff --git a/backend/send_email_hierarchy/request_state_email_sender.py b/backend/send_email_hierarchy/request_state_email_sender.py new file mode 100644 index 000000000..558485fda --- /dev/null +++ b/backend/send_email_hierarchy/request_state_email_sender.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +"""User Request Handler.""" + +from . import EmailSender + +__all__ = ['RequestStateEmailSender'] + + +class RequestStateEmailSender(EmailSender): + """Entity responsible to send state link email.""" + + def __init__(self, **kwargs): + """The class constructor. + + It initializes the object with its html and its specific properties. + """ + super(RequestStateEmailSender, self).__init__(**kwargs) + self.subject = "Link para preenchimento de formulario" + self.html = "request_state_email.html" + + def send_email(self): + """It enqueue a sending email task with the json that will fill the entity's html. + + For that, it call its super with email_json property. + """ + email_json = { + 'state_link': self.__get_state_link() + } + super(RequestStateEmailSender, self).send_email(email_json) + + def __get_state_link(self): + return self.__get_data()['state-link'] + + def __get_data(self): + return self.body['data'] From 491022a2332b52b0c63796a7e5d6d38a42049ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Wed, 27 Feb 2019 08:04:26 -0300 Subject: [PATCH 06/44] Add current_state_email_request_handler to handle state link request --- backend/handlers/__init__.py | 4 ++- .../current_state_email_request_handler.py | 29 +++++++++++++++++++ backend/main.py | 2 ++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 backend/handlers/current_state_email_request_handler.py diff --git a/backend/handlers/__init__.py b/backend/handlers/__init__.py index 34e4f1810..4269bdbf1 100644 --- a/backend/handlers/__init__.py +++ b/backend/handlers/__init__.py @@ -44,6 +44,7 @@ from .institution_children_handler import * from .event_followers_handler import * from .feature_toggle_handler import * +from .current_state_email_request_handler import * handlers = [ base_handler, erro_handler, event_collection_handler, event_handler, @@ -63,7 +64,8 @@ user_request_collection_handler, user_timeline_handler, vote_handler, invite_hierarchy_collection_handler, invite_user_collection_handler, invite_institution_handler, invite_user_handler, institution_parent_handler, - institution_children_handler, event_followers_handler, feature_toggle_handler + institution_children_handler, event_followers_handler, feature_toggle_handler, + current_state_email_request_handler ] __all__ = [prop for handler in handlers for prop in handler.__all__] diff --git a/backend/handlers/current_state_email_request_handler.py b/backend/handlers/current_state_email_request_handler.py new file mode 100644 index 000000000..49f261656 --- /dev/null +++ b/backend/handlers/current_state_email_request_handler.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +"""User Request Handler.""" + +import json + +from util import login_required +from utils import json_response +from . import BaseHandler +from send_email_hierarchy import RequestStateEmailSender + +__all__ = ['CurrentStateEmailRequestHandler'] + + +class CurrentStateEmailRequestHandler(BaseHandler): + """Email request handler.""" + + @login_required + @json_response + def post(self, user): + body = json.loads(self.request.body) + + subject = "Link para preenchimento de formulario" + + email_sender = RequestStateEmailSender(**{ + 'receiver': user.email, + 'subject': subject, + 'body': body + }) + email_sender.send_email() diff --git a/backend/main.py b/backend/main.py index d135f30d8..aad167f7a 100644 --- a/backend/main.py +++ b/backend/main.py @@ -47,6 +47,7 @@ from handlers import InstitutionChildrenHandler from handlers import EventFollowersHandler from handlers import FeatureToggleHandler +from handlers import CurrentStateEmailRequestHandler methods = set(webapp2.WSGIApplication.allowed_methods) methods.add('PATCH') @@ -100,6 +101,7 @@ ("/api/user/timeline.*", UserTimelineHandler), ("/api/search/institution", SearchHandler), ("/api/feature-toggle.*", FeatureToggleHandler), + ("/api/email/current-state", CurrentStateEmailRequestHandler), ("/login", LoginHandler), ("/logout", LogoutHandler), ("/api/.*", ErroHandler) From 25bc6008ca58bc2e85411bfae9ad1d78b0622409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Wed, 27 Feb 2019 08:07:54 -0300 Subject: [PATCH 07/44] Fix doc --- backend/handlers/current_state_email_request_handler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/handlers/current_state_email_request_handler.py b/backend/handlers/current_state_email_request_handler.py index 49f261656..ce27e18fb 100644 --- a/backend/handlers/current_state_email_request_handler.py +++ b/backend/handlers/current_state_email_request_handler.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -"""User Request Handler.""" +"""Current state link request email handler.""" import json @@ -12,7 +12,7 @@ class CurrentStateEmailRequestHandler(BaseHandler): - """Email request handler.""" + """Current state email request handler.""" @login_required @json_response From 365401b5c18084c720e439242d19c16c30c24926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Wed, 27 Feb 2019 08:34:28 -0300 Subject: [PATCH 08/44] Fix request state email sender doc --- backend/send_email_hierarchy/request_state_email_sender.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/send_email_hierarchy/request_state_email_sender.py b/backend/send_email_hierarchy/request_state_email_sender.py index 558485fda..e2cd6f858 100644 --- a/backend/send_email_hierarchy/request_state_email_sender.py +++ b/backend/send_email_hierarchy/request_state_email_sender.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -"""User Request Handler.""" +"""Request state email sender.""" from . import EmailSender From 79d213620411527dca7483425cbcc56c4bec1cf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Fri, 1 Mar 2019 10:30:57 -0300 Subject: [PATCH 09/44] Create email service and URL constants --- frontend/email/EmailService.js | 17 +++++++++++++++++ frontend/index.html | 6 ++++++ frontend/utils/urlConstants.js | 10 ++++++++++ 3 files changed, 33 insertions(+) create mode 100644 frontend/email/EmailService.js create mode 100644 frontend/utils/urlConstants.js diff --git a/frontend/email/EmailService.js b/frontend/email/EmailService.js new file mode 100644 index 000000000..87ad53e95 --- /dev/null +++ b/frontend/email/EmailService.js @@ -0,0 +1,17 @@ +(function () { + 'use strict'; + + angular.module("app").service('EmailService', ["HttpService", "URL_CONSTANTS", function emailService(HttpService, URL_CONSTANTS) { + const emailService = this; + + emailService.STATE_LINK_EMAIL_API_URI = "/api/email/current-state"; + + emailService.sendStateLink = (stateLink) => { + return HttpService.post(emailService.STATE_LINK_EMAIL_API_URI, { + "data": { + "state-link": URL_CONSTANTS.FRONTEND + stateLink + } + }); + }; + }]); +})(); \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html index 4408ab934..05cf7560b 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -310,5 +310,11 @@ + + + + + + diff --git a/frontend/utils/urlConstants.js b/frontend/utils/urlConstants.js new file mode 100644 index 000000000..6f739232f --- /dev/null +++ b/frontend/utils/urlConstants.js @@ -0,0 +1,10 @@ +(function () { + 'use strict'; + + const MAIN_URL = "plataformacis.org"; + + angular.module("app").constant('URL_CONSTANTS', { + MAIN: MAIN_URL, + FRONTEND: "frontend." + MAIN_URL + }); +})(); \ No newline at end of file From e1beb200b47d4e3642315860d9014bbf223d34fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Fri, 1 Mar 2019 10:32:46 -0300 Subject: [PATCH 10/44] Add state link request service --- .../StateLinkRequestService.js | 35 +++++++++++++++++++ .../stateLinkRequest/stateLinkConstants.js | 9 +++++ .../stateLinkRequestDialog.html | 9 +++++ frontend/index.html | 3 ++ 4 files changed, 56 insertions(+) create mode 100644 frontend/email/stateLinkRequest/StateLinkRequestService.js create mode 100644 frontend/email/stateLinkRequest/stateLinkConstants.js create mode 100644 frontend/email/stateLinkRequest/stateLinkRequestDialog.html diff --git a/frontend/email/stateLinkRequest/StateLinkRequestService.js b/frontend/email/stateLinkRequest/StateLinkRequestService.js new file mode 100644 index 000000000..7a167bddc --- /dev/null +++ b/frontend/email/stateLinkRequest/StateLinkRequestService.js @@ -0,0 +1,35 @@ +(function () { + 'use strict'; + + angular.module("app").service('StateLinkRequestService', ['$mdDialog', function StateLinkRequestService($mdDialog) { + const StateLinkRequestService = this; + + StateLinkRequestService.showLinkRequestDialog = (stateLink, previousState) => { + $mdDialog.show({ + templateUrl: "app/email/stateLinkRequest/stateLinkRequestDialog.html", + clickOutsideToClose:true, + locals: { + stateLink: stateLink, + previousState: previousState, + }, + controller: [ + 'EmailService', + '$state', + 'stateLink', + 'previousState', + StateLinkRequestController, + ], + controllerAs: 'ctrl' + }); + }; + + function StateLinkRequestController(EmailService, $state, stateLink, previousState) { + const ctrl = this; + + ctrl.sendStateLink = () => { + EmailService.sendStateLink(stateLink); + $state.go(previousState); + }; + } + }]); +})(); \ No newline at end of file diff --git a/frontend/email/stateLinkRequest/stateLinkConstants.js b/frontend/email/stateLinkRequest/stateLinkConstants.js new file mode 100644 index 000000000..0a0cf085b --- /dev/null +++ b/frontend/email/stateLinkRequest/stateLinkConstants.js @@ -0,0 +1,9 @@ +(function () { + 'use strict'; + + angular.module("app").constant('STATE_LINKS', { + 'CREATE_EVENT': '/events', + 'MANAGE_INSTITUTION': '/institution/INSTITUTION_KEY/edit', + 'INVITE_INSTITUTION': '/inviteInstitution' + }); +})(); \ No newline at end of file diff --git a/frontend/email/stateLinkRequest/stateLinkRequestDialog.html b/frontend/email/stateLinkRequest/stateLinkRequestDialog.html new file mode 100644 index 000000000..b87ae0cde --- /dev/null +++ b/frontend/email/stateLinkRequest/stateLinkRequestDialog.html @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html index 05cf7560b..9199dc995 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -309,10 +309,13 @@ + + + From 363594d2f2be312d27139a94aaa652c49d7b6ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Fri, 1 Mar 2019 10:33:21 -0300 Subject: [PATCH 11/44] Apply stateLinkRequest service --- frontend/event/eventDialogController.js | 5 ++++- frontend/invites/inviteInstitutionController.js | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/frontend/event/eventDialogController.js b/frontend/event/eventDialogController.js index 719b14ff5..b03ba0bfa 100644 --- a/frontend/event/eventDialogController.js +++ b/frontend/event/eventDialogController.js @@ -4,7 +4,7 @@ const app = angular.module("app"); app.controller('EventDialogController', function EventDialogController(MessageService, brCidadesEstados, - ImageService, AuthService, EventService, $mdMenu, $state, $rootScope, $mdDialog, $http, STATES, SCREEN_SIZES, ObserverRecorderService) { + ImageService, AuthService, EventService, $mdMenu, $state, $rootScope, $mdDialog, $http, STATES, SCREEN_SIZES, ObserverRecorderService, StateLinkRequestService, STATE_LINKS) { var dialogCtrl = this; dialogCtrl.loading = false; @@ -513,6 +513,9 @@ } else { dialogCtrl.event = { address: address }; } + if (Utils.isMobileScreen()) { + StateLinkRequestService.showLinkRequestDialog(STATE_LINKS.CREATE_EVENT, STATES.EVENTS); + } }; }); })(); \ No newline at end of file diff --git a/frontend/invites/inviteInstitutionController.js b/frontend/invites/inviteInstitutionController.js index c4c8a7b79..eae2b41a6 100644 --- a/frontend/invites/inviteInstitutionController.js +++ b/frontend/invites/inviteInstitutionController.js @@ -4,7 +4,7 @@ app.controller("InviteInstitutionController", function InviteInstitutionController( InviteService, $state, AuthService, InstitutionService, RequestInvitationService, - STATES, $mdDialog, MessageService) { + STATES, $mdDialog, MessageService, StateLinkRequestService, STATE_LINKS) { var inviteInstCtrl = this; inviteInstCtrl.invite = {}; @@ -189,6 +189,12 @@ } } + inviteInstCtrl.$onInit = () => { + if (Utils.isMobileScreen()) { + StateLinkRequestService.showLinkRequestDialog(STATE_LINKS.INVITE_INSTITUTION, STATES.HOME); + } + }; + (function main() { loadSentInvitations(); loadSentRequests(); From be65ab13d19339edb1066903688e6b4846829693 Mon Sep 17 00:00:00 2001 From: MaianaB Date: Fri, 1 Mar 2019 10:58:51 -0300 Subject: [PATCH 12/44] use components entity-showcase and search-field --- frontend/app.js | 2 +- .../institution/management_members_mobile.css | 21 +++++++++++++++++++ frontend/institution/removeMemberDialog.html | 15 ++++++------- .../institution/transfer_admin_dialog.html | 20 +++++++----------- .../utils/entityShowcase/entityShowcase.css | 9 +++++++- 5 files changed, 43 insertions(+), 24 deletions(-) diff --git a/frontend/app.js b/frontend/app.js index 9ec4df090..c05b84399 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -616,6 +616,6 @@ } (function main() { - initServiceWorker(); + //initServiceWorker(); })(); })(); \ No newline at end of file diff --git a/frontend/institution/management_members_mobile.css b/frontend/institution/management_members_mobile.css index 4b9079d2b..c339c3075 100644 --- a/frontend/institution/management_members_mobile.css +++ b/frontend/institution/management_members_mobile.css @@ -61,4 +61,25 @@ display: grid; grid-row-gap: 0.5em; max-height: 18em; +} + + +@media screen and (max-width: 361px) { + .remove-member-title{ + font-size: 15px; + } + + .remove-member-name-user{ + font-size: 13px; + } +} + +@media screen and (min-width: 361px) and (max-width: 460px) { + .remove-member-title{ + font-size: 16px; + } + + .remove-member-name-user{ + font-size: 14px; + } } \ No newline at end of file diff --git a/frontend/institution/removeMemberDialog.html b/frontend/institution/removeMemberDialog.html index 575537358..ed597e17f 100644 --- a/frontend/institution/removeMemberDialog.html +++ b/frontend/institution/removeMemberDialog.html @@ -1,20 +1,17 @@
- Deseja remover este membro de sua instituição? + Deseja remover este membro de sua instituição? close
- - -
-

{{ removeMemberCtrl.member.name | uppercase }}

-

{{ removeMemberCtrl.member.email[0]}}

-
-
+ +
Motivo da remoção (Opcional) diff --git a/frontend/institution/transfer_admin_dialog.html b/frontend/institution/transfer_admin_dialog.html index 46dde6143..c9c1aa8a5 100644 --- a/frontend/institution/transfer_admin_dialog.html +++ b/frontend/institution/transfer_admin_dialog.html @@ -5,20 +5,14 @@

Transferir administração

Cada institutição precisa ter um administrador na plataforma CIS. Escolha abaixo um novo administrador para sua instituição:

- - - search - + - - -
- {{ member.name }} - {{ member.email[0]}} -
-
+

Nenhum membro foi encontrado com esse nome ou email.

diff --git a/frontend/utils/entityShowcase/entityShowcase.css b/frontend/utils/entityShowcase/entityShowcase.css index bcdf08127..26ea6cdc1 100644 --- a/frontend/utils/entityShowcase/entityShowcase.css +++ b/frontend/utils/entityShowcase/entityShowcase.css @@ -43,4 +43,11 @@ .entity-showcase__right-icon-buttons { grid-area: right-icon-buttons; -} \ No newline at end of file +} + +@media screen and (max-width: 320px) { + .small-avatar .entity-showcase__avatar{ + height: 2.5em; + width: 2.5em; + } +} From ca8c651b6946b492b147a8e8adcb884b9a1e71bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Fri, 1 Mar 2019 11:09:52 -0300 Subject: [PATCH 13/44] Fix Tests --- frontend/test/specs/event/eventDialogCtrlSpec.js | 1 + frontend/test/specs/invites/inviteInstitutionControllerSpec.js | 1 + 2 files changed, 2 insertions(+) diff --git a/frontend/test/specs/event/eventDialogCtrlSpec.js b/frontend/test/specs/event/eventDialogCtrlSpec.js index 72d8678af..fc09ad9df 100644 --- a/frontend/test/specs/event/eventDialogCtrlSpec.js +++ b/frontend/test/specs/event/eventDialogCtrlSpec.js @@ -73,6 +73,7 @@ controller.events = []; controller.$onInit(); httpBackend.when('GET', 'app/institution/countries.json').respond(200); + httpBackend.when('GET', 'app/email/stateLinkRequest/stateLinkRequestDialog.html').respond(200); httpBackend.flush(); })); diff --git a/frontend/test/specs/invites/inviteInstitutionControllerSpec.js b/frontend/test/specs/invites/inviteInstitutionControllerSpec.js index 9c9c2a73e..210c4c143 100644 --- a/frontend/test/specs/invites/inviteInstitutionControllerSpec.js +++ b/frontend/test/specs/invites/inviteInstitutionControllerSpec.js @@ -56,6 +56,7 @@ httpBackend.when('GET', "main/main.html").respond(200); httpBackend.when('GET', "home/home.html").respond(200); httpBackend.when('GET', "auth/login.html").respond(200); + httpBackend.when('GET', 'app/email/stateLinkRequest/stateLinkRequestDialog.html').respond(200); createCtrl = function() { return $controller('InviteInstitutionController', From 1ee429b3ac09157c4b92ae0a894e81038ba1bd04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Fri, 1 Mar 2019 11:42:56 -0300 Subject: [PATCH 14/44] Add showLinkRequestDialog on configInstDirective --- .../institution/configInstitution/configInstDirective.js | 9 ++++++++- .../test/specs/institution/configInstDirectiveSpec.js | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/institution/configInstitution/configInstDirective.js b/frontend/institution/configInstitution/configInstDirective.js index 6938ece5c..86c6ae813 100644 --- a/frontend/institution/configInstitution/configInstDirective.js +++ b/frontend/institution/configInstitution/configInstDirective.js @@ -3,7 +3,7 @@ var app = angular.module("app"); app.controller("ConfigInstController", function ConfigInstController(AuthService, InstitutionService, CropImageService,$state, $mdDialog, $http, STATES, ImageService, $rootScope, MessageService, PdfService, $q, $window, - RequestInvitationService, brCidadesEstados, ObserverRecorderService) { + RequestInvitationService, brCidadesEstados, ObserverRecorderService, StateLinkRequestService, STATE_LINKS) { var configInstCtrl = this; var institutionKey = $state.params.institutionKey; @@ -468,8 +468,15 @@ } else { $state.go(STATES.SIGNIN); } + if (Utils.isMobileScreen()) { + StateLinkRequestService.showLinkRequestDialog(getInstEditLink(), STATES.MANAGE_INST); + } }; + function getInstEditLink () { + return STATE_LINKS.MANAGE_INSTITUTION.replace("INSTITUTION_KEY", configInstCtrl.institutionKey); + } + (function main(){ configInstCtrl.institutionKey = institutionKey; configInstCtrl.initController(); diff --git a/frontend/test/specs/institution/configInstDirectiveSpec.js b/frontend/test/specs/institution/configInstDirectiveSpec.js index d19e7467f..ade9c9196 100644 --- a/frontend/test/specs/institution/configInstDirectiveSpec.js +++ b/frontend/test/specs/institution/configInstDirectiveSpec.js @@ -93,6 +93,7 @@ describe('Test ConfigInstDirective', function() { httpBackend.when('GET', 'main/main.html').respond(200); httpBackend.when('GET', 'home/home.html').respond(200); httpBackend.when('GET', 'auth/login.html').respond(200); + httpBackend.when('GET', 'app/email/stateLinkRequest/stateLinkRequestDialog.html').respond(200); scope = $rootScope.$new(); state = $state; deferred = $q.defer(); From 5ce25cad84a31a9700be7577caaa1bf8f7141b8b Mon Sep 17 00:00:00 2001 From: MaianaBt Date: Wed, 6 Mar 2019 06:49:03 -0300 Subject: [PATCH 15/44] fix request user dialog --- frontend/index.html | 1 + .../institution/transferAdminController.js | 4 ++ .../institution/transfer_admin_dialog.html | 10 ++-- frontend/invites/new_invite.css | 4 -- frontend/invites/new_invite_page.html | 14 +++--- .../requests/requestProcessingController.js | 11 ++--- frontend/requests/request_user_dialog.css | 46 +++++++++++++++++++ frontend/requests/request_user_dialog.html | 42 +++++++---------- frontend/styles/custom.css | 4 ++ .../utils/entityShowcase/entityShowcase.css | 4 ++ 10 files changed, 92 insertions(+), 48 deletions(-) create mode 100644 frontend/requests/request_user_dialog.css diff --git a/frontend/index.html b/frontend/index.html index 5c31459a4..0500e2b87 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -73,6 +73,7 @@ + diff --git a/frontend/institution/transferAdminController.js b/frontend/institution/transferAdminController.js index 4da2d8e97..bd9e045fa 100644 --- a/frontend/institution/transferAdminController.js +++ b/frontend/institution/transferAdminController.js @@ -20,6 +20,10 @@ return false; }; + transferAdminCtrl.getClass = function getClass(member){ + return (member === transferAdminCtrl.selectedMember) ? "small-avatar": "small-avatar white-background"; + } + transferAdminCtrl.selectMember = function selectMember(member) { transferAdminCtrl.selectedMember = member; transferAdminCtrl.member = member.email[0]; diff --git a/frontend/institution/transfer_admin_dialog.html b/frontend/institution/transfer_admin_dialog.html index c9c1aa8a5..1961a9735 100644 --- a/frontend/institution/transfer_admin_dialog.html +++ b/frontend/institution/transfer_admin_dialog.html @@ -1,5 +1,5 @@ - - + +

Transferir administração

Cada institutição precisa ter um administrador na plataforma CIS. @@ -7,7 +7,7 @@

Transferir administração

- Transferir administração
- + CANCELAR - + CONFIRMAR diff --git a/frontend/invites/new_invite.css b/frontend/invites/new_invite.css index 6c9fe887d..d0805fac8 100644 --- a/frontend/invites/new_invite.css +++ b/frontend/invites/new_invite.css @@ -10,10 +10,6 @@ margin-left: -4.3em; } -.no-margin{ - margin: 0px; -} - @media screen and (min-width: 600px) and (max-width:800px) { .new-invite-page-card { max-width: 30em; diff --git a/frontend/invites/new_invite_page.html b/frontend/invites/new_invite_page.html index 4247951ba..f83ef19be 100644 --- a/frontend/invites/new_invite_page.html +++ b/frontend/invites/new_invite_page.html @@ -46,26 +46,26 @@

{{ newInviteCtrl.invite.suggestion_institution_name }}

- + - + - +
- + - + @@ -73,7 +73,7 @@

{{ newInviteCtrl.invite.suggestion_institution_name }}

- + Rejeitar @@ -88,7 +88,7 @@

{{ newInviteCtrl.invite.suggestion_institution_name }}

- +
diff --git a/frontend/requests/requestProcessingController.js b/frontend/requests/requestProcessingController.js index fa8e6cc5d..5ef0e3fee 100644 --- a/frontend/requests/requestProcessingController.js +++ b/frontend/requests/requestProcessingController.js @@ -79,16 +79,13 @@ }; requestController.getChildrenInstName = function getChildrenInstName(size) { - const returnValue = requestController.children ? - Utils.limitString(requestController.children.name || - requestController.children.sender_name, size) : ""; - return returnValue; + return requestController.children ? + (requestController.children.name || requestController.children.sender_name) : ""; }; requestController.getChildrenInstEmail = function getChildrenInstEmail(size) { - const returnValue = requestController.children ? - Utils.limitString(requestController.children.institutional_email, size) : ""; - return returnValue; + return requestController.children ? + (requestController.children.institutional_email) : ""; }; requestController.isAnotherCountry = function isAnotherCountry() { diff --git a/frontend/requests/request_user_dialog.css b/frontend/requests/request_user_dialog.css new file mode 100644 index 000000000..ccc1f23a3 --- /dev/null +++ b/frontend/requests/request_user_dialog.css @@ -0,0 +1,46 @@ +.request-user__avatar{ + grid-area: avatar; + height: 3em; + width: 3em; + border-radius: 50%; +} + +.request-user__description-dialog{ + margin: 0; + color: #707070; +} + +.request-user__margin-user{ + margin: 0 0 8px 0; +} + +.request-user__requester-entity{ + display: grid; + grid-template-columns: max-content auto; + grid-template-rows: max-content max-content max-content; + grid-template-areas: + 'avatar title' + 'avatar subtitle' + 'avatar sub'; + grid-gap: 0 0.6rem; + padding: 0.6rem; + align-items: center; + background-color: #E0E0E0; +} + +.request-user__title { + grid-area: title; + line-height: 1rem; +} + +.request-user__subtitle { + grid-area: subtitle; + font-size: 0.8em; + line-height: 1rem; +} + +.request-user__sub{ + grid-area: sub; + font-size: 0.8em; + line-height: 1rem; +} \ No newline at end of file diff --git a/frontend/requests/request_user_dialog.html b/frontend/requests/request_user_dialog.html index 2aed9e4f7..a5a88e8e3 100644 --- a/frontend/requests/request_user_dialog.html +++ b/frontend/requests/request_user_dialog.html @@ -1,37 +1,29 @@ - + -

Confirmar Vínculo

-

+

Confirmar Vínculo

+

{{requestCtrl.isRequestUser() ? "Um usuário da plataforma" : "Uma instituição"}} solicitou vincular-se a uma das instituições que você administra. Clique em confirmar para aceitar ou rejeitar para recusar vinculo.

-
-
- {{requestCtrl.parent.name}} -
-
- {{ requestCtrl.parent.name }} - {{ requestCtrl.parent.email }} -
-
+ +
-
-
- {{ requestCtrl.children.name }} -
-
- {{ requestCtrl.getChildrenInstName(25)}} - {{ requestCtrl.getChildrenInstName(60)}} - {{ requestCtrl.getChildrenInstEmail(20) }} - {{ requestCtrl.getChildrenInstEmail(50) }} - {{ requestCtrl.children.office }} -
+
+ + {{requestCtrl.getChildrenInstName()}} + + {{requestCtrl.getChildrenInstEmail()}} + + + Cargo: {{ requestCtrl.children.office }} +
diff --git a/frontend/styles/custom.css b/frontend/styles/custom.css index 3a72edea3..a9901f4ae 100644 --- a/frontend/styles/custom.css +++ b/frontend/styles/custom.css @@ -1131,6 +1131,10 @@ md-input-container:not(.md-input-invalid).md-input-focused .green-input, font-weight: 500; } +.zero-margin{ + margin: 0px; +} + /* Smartphones */ @media screen and (max-width: 420px) { .custom-card { diff --git a/frontend/utils/entityShowcase/entityShowcase.css b/frontend/utils/entityShowcase/entityShowcase.css index 26ea6cdc1..9ca749f58 100644 --- a/frontend/utils/entityShowcase/entityShowcase.css +++ b/frontend/utils/entityShowcase/entityShowcase.css @@ -45,6 +45,10 @@ grid-area: right-icon-buttons; } +.white-background .entity-showcase{ + background-color: white; +} + @media screen and (max-width: 320px) { .small-avatar .entity-showcase__avatar{ height: 2.5em; From 6d9fb0cfb14f46554d7ef5ed938828fdc75754d4 Mon Sep 17 00:00:00 2001 From: MaianaBt Date: Wed, 6 Mar 2019 09:18:19 -0300 Subject: [PATCH 16/44] changed button of resend invite member --- .../institution/manageMembers/managementMembersController.js | 4 ++-- frontend/invites/inviteInstitutionController.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/institution/manageMembers/managementMembersController.js b/frontend/institution/manageMembers/managementMembersController.js index d5bca1b8e..a4392aa55 100644 --- a/frontend/institution/manageMembers/managementMembersController.js +++ b/frontend/institution/manageMembers/managementMembersController.js @@ -260,9 +260,9 @@ .clickOutsideToClose(false) .title('Reenviar convite') .textContent('Você deseja reenviar o convite?') - .ariaLabel('Reenviar convite') + .ariaLabel('Reenviar') .targetEvent(event) - .ok('Reenviar convite') + .ok('Reenviar') .cancel('Cancelar'); var promise = $mdDialog.show(confirm); promise.then(function () { diff --git a/frontend/invites/inviteInstitutionController.js b/frontend/invites/inviteInstitutionController.js index c4c8a7b79..08104da14 100644 --- a/frontend/invites/inviteInstitutionController.js +++ b/frontend/invites/inviteInstitutionController.js @@ -127,9 +127,9 @@ .clickOutsideToClose(false) .title('Reenviar convite') .textContent('Você deseja reenviar o convite?') - .ariaLabel('Reenviar convite') + .ariaLabel('Reenviar') .targetEvent(event) - .ok('Reenviar convite') + .ok('Reenviar') .cancel('Cancelar'); var promise = $mdDialog.show(confirm); promise.then(function () { From 21cb547cd19cfc631522b51f2782013be2329ab6 Mon Sep 17 00:00:00 2001 From: MaianaBt Date: Wed, 6 Mar 2019 09:18:45 -0300 Subject: [PATCH 17/44] remove comment --- frontend/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/app.js b/frontend/app.js index b88f986ce..c588aa15e 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -629,6 +629,6 @@ } (function main() { - //initServiceWorker(); + initServiceWorker(); })(); })(); \ No newline at end of file From a63a8249dae26b7066c73fde31174216e7cac6dd Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Wed, 6 Mar 2019 15:22:09 -0300 Subject: [PATCH 18/44] create filterEventsByInstitution component --- frontend/event/events_mobile.html | 4 +++- .../filterEventByInstitution.component.js | 18 ++++++++++++++++++ .../event/filter_events_by_institution.html | 1 + frontend/index.html | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 frontend/event/filterEventByInstitution.component.js create mode 100644 frontend/event/filter_events_by_institution.html diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index 349519ec8..58a135bd4 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -59,4 +59,6 @@ add - \ No newline at end of file + + + \ No newline at end of file diff --git a/frontend/event/filterEventByInstitution.component.js b/frontend/event/filterEventByInstitution.component.js new file mode 100644 index 000000000..7e2822153 --- /dev/null +++ b/frontend/event/filterEventByInstitution.component.js @@ -0,0 +1,18 @@ +(function() { + 'use strict'; + + const app = angular.module('app'); + + app.controller('FilterEventsByInstitutionController', function() { + const filterCtrl = this; + }) + + app.component("filterEventsByInstitution", { + templateUrl: 'app/event/filter_events_by_institution.html', + controller: 'FilterEventsByInstitutionController', + controllerAs: 'filterCtrl', + bindings: { + filterList: '<' + } + }); +})(); \ No newline at end of file diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html new file mode 100644 index 000000000..f293d0653 --- /dev/null +++ b/frontend/event/filter_events_by_institution.html @@ -0,0 +1 @@ +

Filtrar por institutição

\ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html index bc0d3d26e..ab41507ba 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -228,6 +228,7 @@ + From 8a12046cb993db9414364a709ecb96dc99eb3040 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Wed, 6 Mar 2019 17:24:58 -0300 Subject: [PATCH 19/44] create filter events page --- frontend/event/filterEventByInstitution.component.js | 4 ++++ frontend/event/filter_events_by_institution.html | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frontend/event/filterEventByInstitution.component.js b/frontend/event/filterEventByInstitution.component.js index 7e2822153..502110c72 100644 --- a/frontend/event/filterEventByInstitution.component.js +++ b/frontend/event/filterEventByInstitution.component.js @@ -5,6 +5,10 @@ app.controller('FilterEventsByInstitutionController', function() { const filterCtrl = this; + + filterCtrl.$onInit = function() { + console.log(filterCtrl.filterList); + }; }) app.component("filterEventsByInstitution", { diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html index f293d0653..52ef69325 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filter_events_by_institution.html @@ -1 +1,8 @@ -

Filtrar por institutição

\ No newline at end of file +

Filtrar por institutição

+
+ + Laboratório de Avaliação e Desenvolvimento de Biomateriais do Nordeste +
+ +CANCELAR +FILTRAR \ No newline at end of file From 97430d0c67daa271db9d5d53e8d8f99cdf1c5c87 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Wed, 6 Mar 2019 17:51:22 -0300 Subject: [PATCH 20/44] Add grid layout in filter events page --- frontend/event/events_mobile.html | 6 +++--- .../event/filter_events_by_institution.html | 20 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index 58a135bd4..c52a39959 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -1,6 +1,6 @@ -
+
@@ -51,7 +51,7 @@
- - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html index 52ef69325..dd5c7e56b 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filter_events_by_institution.html @@ -1,8 +1,14 @@ -

Filtrar por institutição

-
- - Laboratório de Avaliação e Desenvolvimento de Biomateriais do Nordeste -
+
+

Filtrar por institutição

+
+
+ + Laboratório de Avaliação e Desenvolvimento de Biomateriais do Nordeste +
+
-CANCELAR -FILTRAR \ No newline at end of file +
+ CANCELAR + FILTRAR +
+
\ No newline at end of file From a11fb84ee15ec6d8c78781220b6a21a26637a808 Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Wed, 6 Mar 2019 17:56:37 -0300 Subject: [PATCH 21/44] centralizing no events message on desktop --- frontend/event/event.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/event/event.css b/frontend/event/event.css index b3d29c69e..1e07b577e 100644 --- a/frontend/event/event.css +++ b/frontend/event/event.css @@ -143,6 +143,10 @@ margin: 0; } +.centralized-event-content { + text-align: center; +} + #menu-button { margin-left: auto; width: 0.8em; From a2b20f1c8a252e1f58bd335a93c09c428012cc74 Mon Sep 17 00:00:00 2001 From: MaianaBt Date: Wed, 6 Mar 2019 22:42:43 -0300 Subject: [PATCH 22/44] Added jsdoc --- frontend/institution/transferAdminController.js | 3 +++ frontend/requests/request_user_dialog.html | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/institution/transferAdminController.js b/frontend/institution/transferAdminController.js index bd9e045fa..72400b49a 100644 --- a/frontend/institution/transferAdminController.js +++ b/frontend/institution/transferAdminController.js @@ -20,6 +20,9 @@ return false; }; + /** Get class of element HTML that show member entity. + * The class is defined according if member is selected. + */ transferAdminCtrl.getClass = function getClass(member){ return (member === transferAdminCtrl.selectedMember) ? "small-avatar": "small-avatar white-background"; } diff --git a/frontend/requests/request_user_dialog.html b/frontend/requests/request_user_dialog.html index a5a88e8e3..e0d177176 100644 --- a/frontend/requests/request_user_dialog.html +++ b/frontend/requests/request_user_dialog.html @@ -1,6 +1,6 @@ -

Confirmar Vínculo

+

Confirmar Vínculo

{{requestCtrl.isRequestUser() ? "Um usuário da plataforma" : "Uma instituição"}} solicitou vincular-se a uma das instituições que você administra. Clique em confirmar para aceitar ou rejeitar para recusar vinculo. From 8517668cc2ba5f8cc73e615a260533f7854fe11a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 08:30:14 -0300 Subject: [PATCH 23/44] Add EmailService and StateLinkRequestService jsdoc --- frontend/email/EmailService.js | 7 +++++++ .../email/stateLinkRequest/StateLinkRequestService.js | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/frontend/email/EmailService.js b/frontend/email/EmailService.js index 87ad53e95..efe191285 100644 --- a/frontend/email/EmailService.js +++ b/frontend/email/EmailService.js @@ -6,6 +6,13 @@ emailService.STATE_LINK_EMAIL_API_URI = "/api/email/current-state"; + /** + * Make a post request to the backend to send a state link by email. + * It receives the state link that will be sent. + * + * @param stateLink the state link that will be sent. + * @returns The post request to the backend. + */ emailService.sendStateLink = (stateLink) => { return HttpService.post(emailService.STATE_LINK_EMAIL_API_URI, { "data": { diff --git a/frontend/email/stateLinkRequest/StateLinkRequestService.js b/frontend/email/stateLinkRequest/StateLinkRequestService.js index 7a167bddc..0e97f8682 100644 --- a/frontend/email/stateLinkRequest/StateLinkRequestService.js +++ b/frontend/email/stateLinkRequest/StateLinkRequestService.js @@ -4,6 +4,14 @@ angular.module("app").service('StateLinkRequestService', ['$mdDialog', function StateLinkRequestService($mdDialog) { const StateLinkRequestService = this; + /** + * It shows a dialog that will ask the user if it wants to receive the link of the state + * by email. It is used in pages that has big forms to be filled. + * + * @param stateLink the state link that will be sent by email. + * @param previousState the state that the user will comeback if it accepts to receive + * the email. + */ StateLinkRequestService.showLinkRequestDialog = (stateLink, previousState) => { $mdDialog.show({ templateUrl: "app/email/stateLinkRequest/stateLinkRequestDialog.html", From aa631c3e1116b807052c25e6ebf7ca3e7fa13a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 09:47:25 -0300 Subject: [PATCH 24/44] Add showRequestLinkDialog test on inviteInstCtrl --- .../invites/inviteInstitutionControllerSpec.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/test/specs/invites/inviteInstitutionControllerSpec.js b/frontend/test/specs/invites/inviteInstitutionControllerSpec.js index 210c4c143..bcfe692eb 100644 --- a/frontend/test/specs/invites/inviteInstitutionControllerSpec.js +++ b/frontend/test/specs/invites/inviteInstitutionControllerSpec.js @@ -3,6 +3,7 @@ (describe('Test InviteInstitutionController', function() { var inviteinstitutionCtrl, httpBackend, scope, inviteService, createCtrl, state, instService, mdDialog, requestInvitationService; + let stateLinkRequestService, states, stateLinks; var institution = { name: 'institution', @@ -39,7 +40,7 @@ beforeEach(module('app')); beforeEach(inject(function($controller, $httpBackend, $rootScope, $state, $mdDialog, - InviteService, AuthService, InstitutionService, RequestInvitationService) { + InviteService, AuthService, InstitutionService, RequestInvitationService, StateLinkRequestService, STATE_LINKS, STATES) { httpBackend = $httpBackend; scope = $rootScope.$new(); state = $state; @@ -47,6 +48,9 @@ inviteService = InviteService; instService = InstitutionService; requestInvitationService = RequestInvitationService; + stateLinkRequestService = StateLinkRequestService; + stateLinks = STATE_LINKS; + states = STATES; AuthService.login(user); @@ -211,4 +215,12 @@ }); }); }); + + describe('$onInit', function () { + it('should call showLinkRequestDialog if in mobile screen', function () { + spyOn(stateLinkRequestService, 'showLinkRequestDialog'); + inviteinstitutionCtrl.$onInit(); + expect(stateLinkRequestService.showLinkRequestDialog).toHaveBeenCalledWith(stateLinks.INVITE_INSTITUTION, states.HOME); + }); + }); })); \ No newline at end of file From ab5f35a6bb5d055460394ce4f65f80f00fa1ad8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 09:55:07 -0300 Subject: [PATCH 25/44] Add showLinkRequestDialog test on eventDialogCtrl --- frontend/test/specs/event/eventDialogCtrlSpec.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/test/specs/event/eventDialogCtrlSpec.js b/frontend/test/specs/event/eventDialogCtrlSpec.js index fc09ad9df..c757b4c2d 100644 --- a/frontend/test/specs/event/eventDialogCtrlSpec.js +++ b/frontend/test/specs/event/eventDialogCtrlSpec.js @@ -3,7 +3,7 @@ (describe('Test EventDialogController', function() { let controller, scope, httpBackend, rootScope, imageService, eventService, - messageService, newCtrl, state, mdDialog, states, deferred; + messageService, newCtrl, state, mdDialog, states, deferred, stateLinkRequestService, stateLinks; const splab = {name: 'Splab', key: '098745'}, @@ -48,7 +48,8 @@ beforeEach(module('app')); beforeEach(inject(function($controller, $httpBackend, AuthService, - $rootScope, ImageService, EventService, MessageService, $state, $mdDialog, STATES, $q) { + $rootScope, ImageService, EventService, MessageService, $state, $mdDialog, STATES, $q, + StateLinkRequestService, STATE_LINKS) { imageService = ImageService; scope = $rootScope.$new(); httpBackend = $httpBackend; @@ -60,6 +61,8 @@ mdDialog = $mdDialog; states = STATES; deferred = $q.defer(); + stateLinkRequestService = StateLinkRequestService; + stateLinks = STATE_LINKS; AuthService.login(user); controller = newCtrl('EventDialogController', { scope: scope, @@ -628,6 +631,11 @@ country: "Brasil" }}); }); + it('should call showLinkRequestDialog', function () { + spyOn(stateLinkRequestService, 'showLinkRequestDialog'); + controller.$onInit(); + expect(stateLinkRequestService.showLinkRequestDialog).toHaveBeenCalledWith(stateLinks.CREATE_EVENT, states.EVENTS); + }); }); }); })); \ No newline at end of file From 6d940d1229fd1193e7bf332cea5b4be9649b800a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 10:31:05 -0300 Subject: [PATCH 26/44] Add showLinkRequestDialog test to configInstDirectiveSpec --- .../specs/institution/configInstDirectiveSpec.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/test/specs/institution/configInstDirectiveSpec.js b/frontend/test/specs/institution/configInstDirectiveSpec.js index ade9c9196..2a04be49b 100644 --- a/frontend/test/specs/institution/configInstDirectiveSpec.js +++ b/frontend/test/specs/institution/configInstDirectiveSpec.js @@ -3,7 +3,7 @@ describe('Test ConfigInstDirective', function() { var editInstCtrl, scope, institutionService, state, deferred; var mdToast, mdDialog, http, inviteService, httpBackend, imageService; - let authService, createCtrl, pdfService, messageService, states; + let authService, createCtrl, pdfService, messageService, states, stateLinkRequestService; var address = { cep: "11111-000", @@ -84,7 +84,8 @@ describe('Test ConfigInstDirective', function() { beforeEach(module('app')); beforeEach(inject(function($controller, $httpBackend, $q, $state, $mdToast, STATES, - $rootScope, $mdDialog, $http, InstitutionService, InviteService, AuthService, PdfService, ImageService, MessageService) { + $rootScope, $mdDialog, $http, InstitutionService, InviteService, AuthService, PdfService, ImageService, MessageService, + StateLinkRequestService) { httpBackend = $httpBackend; httpBackend.expectGET('app/institution/legal_nature.json').respond(legal_nature); httpBackend.expectGET('app/institution/actuation_area.json').respond(actuation_area); @@ -94,6 +95,7 @@ describe('Test ConfigInstDirective', function() { httpBackend.when('GET', 'home/home.html').respond(200); httpBackend.when('GET', 'auth/login.html').respond(200); httpBackend.when('GET', 'app/email/stateLinkRequest/stateLinkRequestDialog.html').respond(200); + httpBackend.when('GET', '/api/institutions/inst-key').respond(institution); scope = $rootScope.$new(); state = $state; deferred = $q.defer(); @@ -107,6 +109,7 @@ describe('Test ConfigInstDirective', function() { pdfService = PdfService; http = $http; states = STATES; + stateLinkRequestService = StateLinkRequestService; authService.login(userData); state.params.institutionKey = institution.key; @@ -161,6 +164,13 @@ describe('Test ConfigInstDirective', function() { expect(state.go).toHaveBeenCalledWith(states.SIGNIN); }); + it('should call showLinkRequestDialog', function () { + spyOn(stateLinkRequestService, 'showLinkRequestDialog'); + editInstCtrl.initController(); + expect(stateLinkRequestService.showLinkRequestDialog).toHaveBeenCalled(); + httpBackend.flush(); + }); + afterEach(function() { editInstCtrl.institutionKey = institution.key; editInstCtrl.user.state = 'active'; From 2a7599aa42a0b92d32339a003ba43c98636b4882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 11:21:59 -0300 Subject: [PATCH 27/44] Replace URL_CONSTANTS for Config --- frontend/email/EmailService.js | 4 ++-- frontend/index.html | 2 -- frontend/utils/urlConstants.js | 10 ---------- 3 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 frontend/utils/urlConstants.js diff --git a/frontend/email/EmailService.js b/frontend/email/EmailService.js index efe191285..e6d677733 100644 --- a/frontend/email/EmailService.js +++ b/frontend/email/EmailService.js @@ -1,7 +1,7 @@ (function () { 'use strict'; - angular.module("app").service('EmailService', ["HttpService", "URL_CONSTANTS", function emailService(HttpService, URL_CONSTANTS) { + angular.module("app").service('EmailService', ["HttpService", function emailService(HttpService) { const emailService = this; emailService.STATE_LINK_EMAIL_API_URI = "/api/email/current-state"; @@ -16,7 +16,7 @@ emailService.sendStateLink = (stateLink) => { return HttpService.post(emailService.STATE_LINK_EMAIL_API_URI, { "data": { - "state-link": URL_CONSTANTS.FRONTEND + stateLink + "state-link": Config.FRONTEND_URL + stateLink } }); }; diff --git a/frontend/index.html b/frontend/index.html index 8b14dc376..3458d298b 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -320,7 +320,5 @@ - - diff --git a/frontend/utils/urlConstants.js b/frontend/utils/urlConstants.js deleted file mode 100644 index 6f739232f..000000000 --- a/frontend/utils/urlConstants.js +++ /dev/null @@ -1,10 +0,0 @@ -(function () { - 'use strict'; - - const MAIN_URL = "plataformacis.org"; - - angular.module("app").constant('URL_CONSTANTS', { - MAIN: MAIN_URL, - FRONTEND: "frontend." + MAIN_URL - }); -})(); \ No newline at end of file From febe1b7c442759b725478df0ed1d021015bb5cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 11:58:58 -0300 Subject: [PATCH 28/44] Change ministerio photo_url to firebase image --- backend/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/admin.py b/backend/admin.py index ed235961c..f4492b833 100644 --- a/backend/admin.py +++ b/backend/admin.py @@ -330,7 +330,7 @@ def get(self): 'address': address_key, 'actuation_area': 'GOVERNMENT_AGENCIES', 'description': 'Ministério da Saúde', - 'photo_url': 'https://i1.wp.com/notta.news/wp-content/uploads/2017/08/tbg_20170713080909_62787.jpg?w=1024', + 'photo_url': 'https://firebasestorage.googleapis.com/v0/b/development-cis.appspot.com/o/images%2Fministerio_da_saude_logo-1551970633722?alt=media&token=a658e366-a3b6-4699-aa98-95dc79eff3b5', 'email': 'deciis@saude.gov.br', 'phone_number': '61 3315-2425', 'state': 'active', From 1c06f404f12ea4d45e7b6f015ee16722381b4a30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Esp=C3=ADndula?= Date: Thu, 7 Mar 2019 13:14:04 -0300 Subject: [PATCH 29/44] Fix all-day checkbox to not change when having an end date --- frontend/event/eventDialogController.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/event/eventDialogController.js b/frontend/event/eventDialogController.js index 50c8e6f51..fd4f7bab1 100644 --- a/frontend/event/eventDialogController.js +++ b/frontend/event/eventDialogController.js @@ -365,7 +365,8 @@ dialogCtrl.startHour = new Date(dialogCtrl.event.start_time); dialogCtrl.startHour.setHours(8, 0, 0); dialogCtrl.addStartHour(); - dialogCtrl.event.end_time = new Date(dialogCtrl.event.start_time); + dialogCtrl.event.end_time = _.isNil(dialogCtrl.event.end_time) ? + new Date(dialogCtrl.event.start_time) : dialogCtrl.event.end_time; dialogCtrl.endHour = new Date(dialogCtrl.event.start_time); dialogCtrl.endHour.setHours(18, 0, 0); dialogCtrl.addEndHour(); From ec22e9e500c78451557e7ab9836dae8da884912d Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Thu, 7 Mar 2019 14:06:12 -0300 Subject: [PATCH 30/44] Create filter by institution in event controller --- frontend/event/eventController.js | 29 ++++++++++++++++--- frontend/event/events_mobile.html | 6 ++-- .../filterEventByInstitution.component.js | 3 +- .../event/filter_events_by_institution.html | 13 ++++++--- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index 5665516d7..4dd681ee7 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -17,6 +17,8 @@ eventCtrl.selectedYear = null; eventCtrl.user = AuthService.getCurrentUser(); eventCtrl.isLoadingEvents = true; + eventCtrl.isFiltering = false; + eventCtrl.institutionsFilter = []; eventCtrl.loadMoreEvents = function loadMoreEvents() { @@ -54,7 +56,11 @@ }); } - eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey); + eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey) + .filter(event => { + const institution = _.find(eventCtrl.institutionsFilter, institution => institution.name === event.institution_name); + return institution && institution.enable; + }); eventCtrl.isLoadingEvents = false; eventCtrl._getEventsByDay(); }, function error() { @@ -172,8 +178,8 @@ * @private */ eventCtrl._getEventsByDay = () => { + eventCtrl.eventsByDay = []; if(eventCtrl.events.length > 0 && eventCtrl.selectedMonth) { - eventCtrl.eventsByDay = []; let eventsByDay = {}; _.forEach(eventCtrl.events, function(event) { eventCtrl._distributeEvents(event, eventsByDay); @@ -253,9 +259,9 @@ eventCtrl._actualPage = 0; eventCtrl.events = []; eventCtrl.loadMoreEvents()} }, { - title: 'Filtrar por instituição', action: () => {} + title: 'Filtrar por instituição', action: () => {eventCtrl.isFiltering = true;} } - ] + ]; return toolbarMenuGeneralOptions; }; @@ -268,6 +274,14 @@ eventCtrl.toolbarItems = eventCtrl._getToolbarMobileMenuItems(); }; + eventCtrl.closeFilter = function closeFilter() { + eventCtrl.isFiltering = false; + eventCtrl._actualPage = 0; + eventCtrl._moreEvents = true; + eventCtrl.isLoadingEvents = true; + return eventCtrl.loadMoreEvents(); + }; + eventCtrl.$onInit = () => { eventCtrl.institutionKey = $state.params.institutionKey; getCurrentInstitution(); @@ -276,6 +290,13 @@ eventCtrl._getMonths().then(() => { eventCtrl.setupToolbarFields(); }); + + eventCtrl.institutionsFilter = eventCtrl.user.follows.map(institution => { + return { + name: institution.name, + enable: true + }; + }); } else { eventCtrl.loadMoreEvents(); } diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index c52a39959..aa06375ae 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -1,6 +1,6 @@ -

+
@@ -51,7 +51,7 @@
- - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/event/filterEventByInstitution.component.js b/frontend/event/filterEventByInstitution.component.js index 502110c72..123a3ccb2 100644 --- a/frontend/event/filterEventByInstitution.component.js +++ b/frontend/event/filterEventByInstitution.component.js @@ -16,7 +16,8 @@ controller: 'FilterEventsByInstitutionController', controllerAs: 'filterCtrl', bindings: { - filterList: '<' + filterList: '<', + actionButton: '<' } }); })(); \ No newline at end of file diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html index dd5c7e56b..131f6a025 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filter_events_by_institution.html @@ -1,14 +1,19 @@

Filtrar por institutição

-
- - Laboratório de Avaliação e Desenvolvimento de Biomateriais do Nordeste +
+ + {{institution.name}} +
+
+ + Todos os eventos
CANCELAR - FILTRAR + FILTRAR
\ No newline at end of file From 5df8e8ff2df41df9364eeda0d0d5950abb7883cd Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Thu, 7 Mar 2019 15:52:53 -0300 Subject: [PATCH 31/44] Fixing icon and adding test --- frontend/event/event.css | 28 ++++++++++++++++--- .../test/specs/event/eventControllerSpec.js | 8 ++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/frontend/event/event.css b/frontend/event/event.css index 1e07b577e..982eac312 100644 --- a/frontend/event/event.css +++ b/frontend/event/event.css @@ -529,13 +529,21 @@ .event-canceled-tag, .event-canceled-icon { color: white; + } + .event-canceled-icon { + width: 1.5em; + height: 2em; + font-size: 2.5em; + margin-top: 0.4em; + margin-left: 0.3em; } .event-canceled-tag { margin-right: 2em; margin-left: -1em; - font-size: 0.95em; + margin-top: 1.4em; + font-size: 0.9em; } .event-canceled-subtitle { @@ -546,19 +554,31 @@ @media screen and (max-width: 400px) { .event-canceled-tag { - font-size: 0.85em; + font-size: 0.8em; } } - @media screen and (max-width: 350px) { + @media screen and (max-width: 360px) { .event-canceled-tag { - margin-right: 1em; + margin-top: 1.7em; font-size: 0.75em; } + } + + @media screen and (max-width: 330px) { + .event-canceled-tag { + margin-right: 1em; + margin-top: 2.1em; + font-size: 0.69em; + } .event-canceled-subtitle { font-size: 0.55em; } + + .event-canceled-icon { + margin-left: 0.2em; + } } @media screen and (min-height: 600px) { diff --git a/frontend/test/specs/event/eventControllerSpec.js b/frontend/test/specs/event/eventControllerSpec.js index ec8f6c0f2..8dceb6a65 100644 --- a/frontend/test/specs/event/eventControllerSpec.js +++ b/frontend/test/specs/event/eventControllerSpec.js @@ -39,6 +39,7 @@ 'start_time': startDate, 'end_time': endDate, 'institution_key': institution.key, + 'last_modified_by': 'User Test', 'key': '12345' }, other_event = { @@ -414,6 +415,13 @@ }); }); + describe('getNameOfLastModified()', () => { + it('Should return the first name of who modified the event by last', () => { + expect(event.last_modified_by).toEqual('User Test'); + expect(eventCtrl.getNameOfLastModified(event)).toEqual('User'); + }); + }); + describe('getToolbarMobileGeneralOptions()', () => { it('tests the first object', () => { spyOn(eventCtrl, 'loadMoreEvents'); From 202203175af97d1f5a46f281d4f40d650eb3234a Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Thu, 7 Mar 2019 16:05:00 -0300 Subject: [PATCH 32/44] create function to enable or desable all institution filters --- frontend/event/eventController.js | 7 ++++- frontend/event/events_mobile.html | 2 +- .../filterEventByInstitution.component.js | 26 ++++++++++++++++--- .../event/filter_events_by_institution.html | 8 +++--- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index 4dd681ee7..3daca0977 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -274,7 +274,8 @@ eventCtrl.toolbarItems = eventCtrl._getToolbarMobileMenuItems(); }; - eventCtrl.closeFilter = function closeFilter() { + eventCtrl.confirmFilter = function confirmFilter() { + eventCtrl.events = []; eventCtrl.isFiltering = false; eventCtrl._actualPage = 0; eventCtrl._moreEvents = true; @@ -282,6 +283,10 @@ return eventCtrl.loadMoreEvents(); }; + eventCtrl.cancelFilter = function cancelFilter() { + eventCtrl.isFiltering = false; + }; + eventCtrl.$onInit = () => { eventCtrl.institutionKey = $state.params.institutionKey; getCurrentInstitution(); diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index aa06375ae..c0167ab04 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -61,4 +61,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/event/filterEventByInstitution.component.js b/frontend/event/filterEventByInstitution.component.js index 123a3ccb2..6b375ed79 100644 --- a/frontend/event/filterEventByInstitution.component.js +++ b/frontend/event/filterEventByInstitution.component.js @@ -5,11 +5,30 @@ app.controller('FilterEventsByInstitutionController', function() { const filterCtrl = this; + filterCtrl.originalList = []; + filterCtrl.enableAll = true; + + + filterCtrl.checkChange = function checkChange() { + filterCtrl.enableAll = (_.find(filterCtrl.filterList, institution => !institution.enable)) ? false : true; + }; + + filterCtrl.enableOrDisableAll = function enableOrDisableAll() { + filterCtrl.filterList.map(institution => institution.enable = filterCtrl.enableAll); + }; + + filterCtrl.cancel = function cancel() { + filterCtrl.filterList.map((institution, index) => { + institution.enable = filterCtrl.originalList[index].enable; + }); + filterCtrl.cancelAction(); + }; filterCtrl.$onInit = function() { - console.log(filterCtrl.filterList); + filterCtrl.originalList = _.cloneDeep(filterCtrl.filterList); + filterCtrl.checkChange(); }; - }) + }); app.component("filterEventsByInstitution", { templateUrl: 'app/event/filter_events_by_institution.html', @@ -17,7 +36,8 @@ controllerAs: 'filterCtrl', bindings: { filterList: '<', - actionButton: '<' + confirmAction: '<', + cancelAction: '<' } }); })(); \ No newline at end of file diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html index 131f6a025..dd66b566a 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filter_events_by_institution.html @@ -3,17 +3,17 @@

Filtrar por institutição

- + {{institution.name}}
- + Todos os eventos
- CANCELAR - FILTRAR + CANCELAR + FILTRAR
\ No newline at end of file From fac77b817925685ea013c66913c96a4a837953d2 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Thu, 7 Mar 2019 17:11:33 -0300 Subject: [PATCH 33/44] create css file to save styles --- frontend/event/events_mobile.html | 9 +++-- .../filter_events_by_institution.css | 35 +++++++++++++++++++ .../event/filter_events_by_institution.html | 17 +++++---- frontend/index.html | 1 + 4 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 frontend/event/filterEvents/filter_events_by_institution.css diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index c0167ab04..effccd323 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -1,3 +1,4 @@ +
@@ -12,7 +13,7 @@ subtitle="eventCtrl.institution.address.city"> + text="Nenhum evento a ser exibido">
@@ -51,6 +52,7 @@
+ @@ -61,4 +63,7 @@ - \ No newline at end of file + + diff --git a/frontend/event/filterEvents/filter_events_by_institution.css b/frontend/event/filterEvents/filter_events_by_institution.css new file mode 100644 index 000000000..f2b21c56c --- /dev/null +++ b/frontend/event/filterEvents/filter_events_by_institution.css @@ -0,0 +1,35 @@ +.filter-container { + display: grid; + grid-template-rows: 1fr min-content; + height: 100%; + max-height: 100%; +} + +.filter-items-container { + max-height: 100%; + overflow-y: scroll; +} + +.filter-items-container > h3 { + text-align: center; +} + +.filter-item { + display: grid; + grid-template-columns: 20px auto; + grid-column-gap: 10px; + padding: 0 16px; + margin: 8px 0; +} + +.filter-item > md-checkbox { + margin: 0; + text-align: center; +} + +.filter-buttons-container { + display: grid; + grid-template-columns: auto auto; + justify-content: end; + margin-bottom: 10px; +} \ No newline at end of file diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filter_events_by_institution.html index dd66b566a..8d67d1886 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filter_events_by_institution.html @@ -1,18 +1,17 @@ -
-

Filtrar por institutição

-
-
- +
+
+

Filtrar por institutição

+
+ {{institution.name}}
-
- +
+ Todos os eventos
-
+
CANCELAR FILTRAR
diff --git a/frontend/index.html b/frontend/index.html index ab41507ba..24bcf4c9a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -78,6 +78,7 @@ + From 98ec1bbfb9b185b3b068d346b62c4fbbce3dda75 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Thu, 7 Mar 2019 17:16:31 -0300 Subject: [PATCH 34/44] move file to correct folder --- .../{ => filterEvents}/filterEventByInstitution.component.js | 2 +- .../{ => filterEvents}/filter_events_by_institution.html | 4 ++-- frontend/index.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename frontend/event/{ => filterEvents}/filterEventByInstitution.component.js (94%) rename frontend/event/{ => filterEvents}/filter_events_by_institution.html (83%) diff --git a/frontend/event/filterEventByInstitution.component.js b/frontend/event/filterEvents/filterEventByInstitution.component.js similarity index 94% rename from frontend/event/filterEventByInstitution.component.js rename to frontend/event/filterEvents/filterEventByInstitution.component.js index 6b375ed79..b28f935ba 100644 --- a/frontend/event/filterEventByInstitution.component.js +++ b/frontend/event/filterEvents/filterEventByInstitution.component.js @@ -31,7 +31,7 @@ }); app.component("filterEventsByInstitution", { - templateUrl: 'app/event/filter_events_by_institution.html', + templateUrl: 'app/event/filterEvents/filter_events_by_institution.html', controller: 'FilterEventsByInstitutionController', controllerAs: 'filterCtrl', bindings: { diff --git a/frontend/event/filter_events_by_institution.html b/frontend/event/filterEvents/filter_events_by_institution.html similarity index 83% rename from frontend/event/filter_events_by_institution.html rename to frontend/event/filterEvents/filter_events_by_institution.html index 8d67d1886..bbbd0ac53 100644 --- a/frontend/event/filter_events_by_institution.html +++ b/frontend/event/filterEvents/filter_events_by_institution.html @@ -2,11 +2,11 @@

Filtrar por institutição

- + {{institution.name}}
- + Todos os eventos
diff --git a/frontend/index.html b/frontend/index.html index 24bcf4c9a..62b4abe70 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -229,7 +229,7 @@ - + From 05018d77fe9a44eeae9ca5e66d0cf11a2f1136aa Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Thu, 7 Mar 2019 17:39:15 -0300 Subject: [PATCH 35/44] fix height distance on filter events page --- .../filter_events_by_institution.css | 6 ++++++ .../filter_events_by_institution.html | 16 +++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/frontend/event/filterEvents/filter_events_by_institution.css b/frontend/event/filterEvents/filter_events_by_institution.css index f2b21c56c..e737947a1 100644 --- a/frontend/event/filterEvents/filter_events_by_institution.css +++ b/frontend/event/filterEvents/filter_events_by_institution.css @@ -14,12 +14,18 @@ text-align: center; } +.filter-items-container > div { + display: grid; + grid-auto-rows: 1fr; +} + .filter-item { display: grid; grid-template-columns: 20px auto; grid-column-gap: 10px; padding: 0 16px; margin: 8px 0; + align-items: center; } .filter-item > md-checkbox { diff --git a/frontend/event/filterEvents/filter_events_by_institution.html b/frontend/event/filterEvents/filter_events_by_institution.html index bbbd0ac53..1eb0b3fef 100644 --- a/frontend/event/filterEvents/filter_events_by_institution.html +++ b/frontend/event/filterEvents/filter_events_by_institution.html @@ -1,13 +1,15 @@

Filtrar por institutição

-
- - {{institution.name}} -
-
- - Todos os eventos +
+
+ + {{institution.name}} +
+
+ + Todos os eventos +
From ab086cd614e9f27dbd629386d283764db9ffc7ca Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Thu, 7 Mar 2019 17:49:14 -0300 Subject: [PATCH 36/44] Creating components to event card and canceled header --- .../event/canceledEventHeader.component.js | 27 ++++++++++ frontend/event/canceled_event_header.html | 8 +++ frontend/event/eventCard.component.js | 31 +++++++++++ frontend/event/eventController.js | 21 +------- frontend/event/event_card.html | 23 +++++++++ frontend/event/events_mobile.html | 31 +---------- frontend/index.html | 2 + .../event/canceledEventHeaderComponentSpec.js | 29 +++++++++++ .../specs/event/eventCardComponentSpec.js | 51 +++++++++++++++++++ .../test/specs/event/eventControllerSpec.js | 20 -------- 10 files changed, 173 insertions(+), 70 deletions(-) create mode 100644 frontend/event/canceledEventHeader.component.js create mode 100644 frontend/event/canceled_event_header.html create mode 100644 frontend/event/eventCard.component.js create mode 100644 frontend/event/event_card.html create mode 100644 frontend/test/specs/event/canceledEventHeaderComponentSpec.js create mode 100644 frontend/test/specs/event/eventCardComponentSpec.js diff --git a/frontend/event/canceledEventHeader.component.js b/frontend/event/canceledEventHeader.component.js new file mode 100644 index 000000000..8ae316bc6 --- /dev/null +++ b/frontend/event/canceledEventHeader.component.js @@ -0,0 +1,27 @@ +"use strict"; + +(function() { + + function CanceledEventController() { + const canceledEventCtrl = this; + + /** + * Get the first name of who modified the event by last + */ + canceledEventCtrl.getNameOfLastModified = () => { + return _.first(canceledEventCtrl.event.last_modified_by.split(" ")); + }; + + }; + + angular + .module("app") + .component("canceledEventHeader", { + templateUrl: 'app/event/canceled_event_header.html', + controller: [CanceledEventController], + controllerAs: 'canceledEventCtrl', + bindings: { + event: '<', + } + }); +})(); \ No newline at end of file diff --git a/frontend/event/canceled_event_header.html b/frontend/event/canceled_event_header.html new file mode 100644 index 000000000..3dbb824cc --- /dev/null +++ b/frontend/event/canceled_event_header.html @@ -0,0 +1,8 @@ + + highlight_off +
+
ESTE EVENTO FOI CANCELADO
+
por {{canceledEventCtrl.getNameOfLastModified()}} • + {{canceledEventCtrl.event.last_modified_date | amUtc | amLocal | amCalendar:referenceTime:formats}}
+
+
\ No newline at end of file diff --git a/frontend/event/eventCard.component.js b/frontend/event/eventCard.component.js new file mode 100644 index 000000000..a7f5669c5 --- /dev/null +++ b/frontend/event/eventCard.component.js @@ -0,0 +1,31 @@ +"use strict"; + +(function() { + + function EventCardController(AuthService) { + const eventCardCtrl = this; + + eventCardCtrl.user = AuthService.getCurrentUser(); + + /** + * Get the color of institutional profile of the user + */ + eventCardCtrl.getProfileColor = () => { + const profile = _.filter(eventCardCtrl.user.institution_profiles, function(prof) { + return prof.institution_key === eventCardCtrl.event.institution_key; + }); + return _.get(_.first(profile), 'color', 'teal'); + }; + }; + + angular + .module("app") + .component("eventCard", { + templateUrl: 'app/event/event_card.html', + controller: ['AuthService', EventCardController], + controllerAs: 'eventCardCtrl', + bindings: { + event: '<', + } + }); +})(); \ No newline at end of file diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index b79daa90b..4731ea28f 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -110,17 +110,6 @@ event.state !== 'deleted' && $state.go(STATES.EVENT_DETAILS, { eventKey: event.key }); }; - /** - * Get the color of institutional profile of the user - * @param {object} event - The current event - */ - eventCtrl.getProfileColor = (event) => { - const profile = _.filter(eventCtrl.user.institution_profiles, function(prof) { - return prof.institution_key === event.institution_key; - }); - return _.get(_.first(profile), 'color', 'teal'); - }; - /** * Loads the events when the filters of month and/or year is changed */ @@ -214,15 +203,7 @@ eventCtrl.loadMoreEvents(); }); }; - - /** - * Get the first name of who modified the event by last - * @param {object} event - */ - eventCtrl.getNameOfLastModified = (event) => { - return _.first(event.last_modified_by.split(" ")); - }; - + /** * Generate the menuItems that will live in the middle of the toolbar. */ diff --git a/frontend/event/event_card.html b/frontend/event/event_card.html new file mode 100644 index 000000000..21b1bbe7e --- /dev/null +++ b/frontend/event/event_card.html @@ -0,0 +1,23 @@ + +
+ +
+ +
+
+
+ {{ eventCardCtrl.event.title | uppercase}} +
+
+ {{ eventCardCtrl.event.start_time | amUtc | amLocal | amDateFormat:'HH:mm' }} + {{ eventCardCtrl.event.address.city ? ' | ' + eventCardCtrl.event.address.city : ''}} +

+ {{eventCardCtrl.event.institution_name || uppercase}} +

+
+
+
+
\ No newline at end of file diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index b677ffd33..c44c60b6d 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -27,36 +27,7 @@
- -
- -
- - highlight_off -
-
ESTE EVENTO FOI CANCELADO
-
por {{eventCtrl.getNameOfLastModified(event)}} • - {{event.last_modified_date | amUtc | amLocal | amCalendar:referenceTime:formats}}
-
-
-
-
-
- {{ event.title | uppercase}} -
-
- {{ event.start_time | amUtc | amLocal | amDateFormat:'HH:mm' }} - {{ event.address.city ? ' | ' + event.address.city : ''}} -

- {{event.institution_name || uppercase}} -

-
-
-
-
+
diff --git a/frontend/index.html b/frontend/index.html index 5c31459a4..798268192 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -233,6 +233,8 @@ + + diff --git a/frontend/test/specs/event/canceledEventHeaderComponentSpec.js b/frontend/test/specs/event/canceledEventHeaderComponentSpec.js new file mode 100644 index 000000000..16a17fb83 --- /dev/null +++ b/frontend/test/specs/event/canceledEventHeaderComponentSpec.js @@ -0,0 +1,29 @@ +"use strict"; + +(describe("CanceledEventHeaderComponent", () => { + + let componentController, rootScope, + scope, event, canceledEventCtrl; + + event = { + last_modified_by: 'User Test', + }; + + beforeEach(module('app')); + + beforeEach(inject(($componentController, $rootScope) => { + + componentController = $componentController; + rootScope = $rootScope; + scope = rootScope.$new(); + canceledEventCtrl = componentController("canceledEventHeader", scope, + {event: event}); + })); + + describe('getNameOfLastModified()', () => { + it('Should return the first name of who modified the event by last', () => { + expect(canceledEventCtrl.event.last_modified_by).toEqual('User Test'); + expect(canceledEventCtrl.getNameOfLastModified()).toEqual('User'); + }); + }); +})); \ No newline at end of file diff --git a/frontend/test/specs/event/eventCardComponentSpec.js b/frontend/test/specs/event/eventCardComponentSpec.js new file mode 100644 index 000000000..df24f8417 --- /dev/null +++ b/frontend/test/specs/event/eventCardComponentSpec.js @@ -0,0 +1,51 @@ +"use strict"; + +(describe("EventCardComponent", () => { + + let componentController, authService, rootScope, + scope, institution, user, event, eventCardCtrl; + + institution = { + key: 'inst-key', + }; + + user = { + institution_profiles: [ + { + institution_key: institution.key, + color: 'pink' + } + ] + }; + + event = { + 'institution_key': institution.key, + }; + + beforeEach(module('app')); + + beforeEach(inject(($componentController, AuthService, $rootScope) => { + + componentController = $componentController; + authService = AuthService; + rootScope = $rootScope; + scope = rootScope.$new(); + authService.login(user); + eventCardCtrl = componentController("eventCard", scope, + {event: event, user: user}); + eventCardCtrl.user = user; + eventCardCtrl.event = event; + })); + + describe('getProfileColor()', () => { + + it('Should return the color if user is member of institution of event', () => { + expect(eventCardCtrl.getProfileColor()).toEqual(_.first(user.institution_profiles).color); + }); + + it('Should return a default color "teal" if user is not a member of institution of event', () => { + eventCardCtrl.user = {institution_profiles: []}; + expect(eventCardCtrl.getProfileColor()).toEqual('teal'); + }); + }); +})); \ No newline at end of file diff --git a/frontend/test/specs/event/eventControllerSpec.js b/frontend/test/specs/event/eventControllerSpec.js index 8dceb6a65..533b2ea6a 100644 --- a/frontend/test/specs/event/eventControllerSpec.js +++ b/frontend/test/specs/event/eventControllerSpec.js @@ -269,19 +269,6 @@ }); }); - describe('getProfileColor()', () => { - - it('Should return the color if user is member of institution of event', () => { - eventCtrl.user = user; - expect(eventCtrl.getProfileColor(event)).toEqual(_.first(user.institution_profiles).color); - }); - - it('Should return a default color "teal" if user is not a member of institution of event', () => { - eventCtrl.user = {institution_profiles: []}; - expect(eventCtrl.getProfileColor(event)).toEqual('teal'); - }); - }); - describe('loadFilteredEvents()', () => { it('Should reset moreEvents, actualPage and isAnotherMonth', () => { @@ -415,13 +402,6 @@ }); }); - describe('getNameOfLastModified()', () => { - it('Should return the first name of who modified the event by last', () => { - expect(event.last_modified_by).toEqual('User Test'); - expect(eventCtrl.getNameOfLastModified(event)).toEqual('User'); - }); - }); - describe('getToolbarMobileGeneralOptions()', () => { it('tests the first object', () => { spyOn(eventCtrl, 'loadMoreEvents'); From 0fc0d484d9eb55eb86ae9535d472afadbc3494ca Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 09:49:39 -0300 Subject: [PATCH 37/44] fix tests --- frontend/event/eventController.js | 7 +++-- .../test/specs/event/eventControllerSpec.js | 30 ++++++++++++------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index 3daca0977..a552a6fd8 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -56,8 +56,9 @@ }); } - eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey) - .filter(event => { + eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey); + + eventCtrl.events = !eventCtrl.institutionKey && eventCtrl.events.filter(event => { const institution = _.find(eventCtrl.institutionsFilter, institution => institution.name === event.institution_name); return institution && institution.enable; }); @@ -66,7 +67,7 @@ }, function error() { $state.go(STATES.HOME); }); - } + }; eventCtrl.newEvent = function newEvent(event) { if(Utils.isMobileScreen(SCREEN_SIZES.SMARTPHONE)) { diff --git a/frontend/test/specs/event/eventControllerSpec.js b/frontend/test/specs/event/eventControllerSpec.js index ec8f6c0f2..d3641aef3 100644 --- a/frontend/test/specs/event/eventControllerSpec.js +++ b/frontend/test/specs/event/eventControllerSpec.js @@ -39,6 +39,7 @@ 'start_time': startDate, 'end_time': endDate, 'institution_key': institution.key, + 'institution_name': institution.name, 'key': '12345' }, other_event = { @@ -49,6 +50,7 @@ 'start_time': startDate, 'end_time': endDate, 'institution_key': other_institution.key, + 'institution_name': institution.name, 'key': '54321' }, requestEvent = { @@ -367,19 +369,27 @@ }); it('Should to increase the events of controller if not is another month', () => { - eventCtrl._isAnotherMonth = false; - eventCtrl.events = requestEvent.events; - expect(eventCtrl.events.length).toEqual(2); - eventCtrl._loadEvents(eventService.getEvents, december, testYear); - expect(eventCtrl.events.length).toEqual(4); + spyOn(Utils, 'isMobileScreen').and.callFake(() => true); + const ctrl = createCtrl(); + ctrl.showImage = true; + ctrl.$onInit(); + ctrl._isAnotherMonth = false; + ctrl.events = requestEvent.events; + expect(ctrl.events.length).toEqual(2); + ctrl._loadEvents(eventService.getEvents, december, testYear); + expect(ctrl.events.length).toEqual(4); }); it('Should update the events of controller if is another month', () => { - eventCtrl._isAnotherMonth = true; - eventCtrl.events = []; - eventCtrl._loadEvents(eventService.getEvents, december, testYear); - expect(eventCtrl.events).toEqual(requestEvent.events); - expect(eventCtrl._isAnotherMonth).toBeFalsy(); + spyOn(Utils, 'isMobileScreen').and.callFake(() => true); + const ctrl = createCtrl(); + ctrl.showImage = true; + ctrl.$onInit(); + ctrl._isAnotherMonth = true; + ctrl.events = []; + ctrl._loadEvents(eventService.getEvents, december, testYear); + expect(ctrl.events).toEqual(requestEvent.events); + expect(ctrl._isAnotherMonth).toBeFalsy(); }); }); From 19bd4302ececa2a962e0914b4026a9d7af2ca784 Mon Sep 17 00:00:00 2001 From: tiagolimpe Date: Fri, 8 Mar 2019 14:50:44 -0300 Subject: [PATCH 38/44] Moving the create event button --- frontend/event/event.css | 5 ----- frontend/event/events_mobile.html | 18 +++++++++--------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/frontend/event/event.css b/frontend/event/event.css index 982eac312..89d30b9bd 100644 --- a/frontend/event/event.css +++ b/frontend/event/event.css @@ -267,11 +267,6 @@ border-left: 0.55em solid; } - .event-button-margin { - position: fixed !important; - margin-bottom: 3.5em; - } - .highlight { background:rgba(0,0,0,0.65); position: absolute; diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index c44c60b6d..635b3a135 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -33,13 +33,13 @@
- - - - add - - -
+ + + + add + + + \ No newline at end of file From 02bc719c0a509645fd73b96637a6a78c57f9387a Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 15:35:17 -0300 Subject: [PATCH 39/44] Create FilterEventsByInstitutionControllerSpec --- frontend/event/eventController.js | 11 +- frontend/event/events_mobile.html | 1 - ...filterEventsByInstitutionControllerSpec.js | 131 ++++++++++++++++++ 3 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 frontend/test/specs/event/filterEvents/filterEventsByInstitutionControllerSpec.js diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index a552a6fd8..81d353f27 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -58,10 +58,13 @@ eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey); - eventCtrl.events = !eventCtrl.institutionKey && eventCtrl.events.filter(event => { - const institution = _.find(eventCtrl.institutionsFilter, institution => institution.name === event.institution_name); - return institution && institution.enable; - }); + if (Utils.isMobileScreen(SCREEN_SIZES.SMARTPHONE) && !eventCtrl.institutionKey) { + eventCtrl.events = eventCtrl.events.filter(event => { + const institution = _.find(eventCtrl.institutionsFilter, institution => institution.name === event.institution_name); + return institution && institution.enable; + }); + } + eventCtrl.isLoadingEvents = false; eventCtrl._getEventsByDay(); }, function error() { diff --git a/frontend/event/events_mobile.html b/frontend/event/events_mobile.html index effccd323..ff211d2d9 100644 --- a/frontend/event/events_mobile.html +++ b/frontend/event/events_mobile.html @@ -1,4 +1,3 @@ -
diff --git a/frontend/test/specs/event/filterEvents/filterEventsByInstitutionControllerSpec.js b/frontend/test/specs/event/filterEvents/filterEventsByInstitutionControllerSpec.js new file mode 100644 index 000000000..e832decf7 --- /dev/null +++ b/frontend/test/specs/event/filterEvents/filterEventsByInstitutionControllerSpec.js @@ -0,0 +1,131 @@ +'use strict'; + +(describe('Test FilterEventsByInstitutionController', function() { + beforeEach(module('app')); + + let filterCtrl, inst, other_inst, filterList; + + beforeEach(inject(function($controller) { + inst = { + name: 'institution', + enable: true + }; + + other_inst = { + name: 'institution', + enable: true + }; + + filterList = [inst, other_inst]; + + filterCtrl = $controller('FilterEventsByInstitutionController'); + filterCtrl.filterList = filterList; + filterCtrl.$onInit(); + })); + + + describe('test checkChange()', function() { + it('Should be change filterCtrl.enableAll to false', function() { + inst.enable = false; + other_inst.enable = true; + filterCtrl.checkChange(); + expect(filterCtrl.enableAll).toBeFalsy(); + + inst.enable = true; + other_inst.enable = false; + filterCtrl.checkChange(); + expect(filterCtrl.enableAll).toBeFalsy(); + + inst.enable = false; + other_inst.enable = false; + filterCtrl.checkChange(); + expect(filterCtrl.enableAll).toBeFalsy(); + }); + + it('Should be change filterCtrl.enableAll to true', function() { + inst.enable = true; + other_inst.enable = true; + filterCtrl.checkChange(); + expect(filterCtrl.enableAll).toBeTruthy(); + }); + }); + + describe('test enableOrDisableAll', function() { + it('Should be enable all filters', function() { + inst.enable = false; + other_inst.enable = false; + filterCtrl.enableAll = true; + + filterCtrl.enableOrDisableAll(); + expect(inst.enable).toBeTruthy(); + expect(other_inst.enable).toBeTruthy(); + + inst.enable = false; + other_inst.enable = true; + filterCtrl.enableAll = true; + + filterCtrl.enableOrDisableAll(); + expect(inst.enable).toBeTruthy(); + expect(other_inst.enable).toBeTruthy(); + }); + + it('Should be disable all filters', function() { + inst.enable = true; + other_inst.enable = true; + filterCtrl.enableAll = false; + + filterCtrl.enableOrDisableAll(); + expect(inst.enable).toBeFalsy(); + expect(other_inst.enable).toBeFalsy(); + + inst.enable = true; + other_inst.enable = false; + filterCtrl.enableAll = false; + + filterCtrl.enableOrDisableAll(); + expect(inst.enable).toBeFalsy(); + expect(other_inst.enable).toBeFalsy(); + }); + }); + + describe('test cancel()', function() { + it('Should be return to original configs', function() { + filterCtrl.cancelAction = () => {}; + spyOn(filterCtrl, 'cancelAction'); + + const originalList = [ + { + name: 'institution', + enable: true + }, + { + name: 'institution', + enable: true + } + ]; + + inst.enable = false; + other_inst.enable = false; + + expect(originalList).toEqual(filterCtrl.originalList); + expect(originalList).not.toEqual(filterCtrl.filterList); + + filterCtrl.cancel(); + + expect(originalList).toEqual(filterCtrl.filterList); + expect(filterCtrl.cancelAction).toHaveBeenCalled(); + }); + }); + + describe('test $onInit', function() { + it('Should be clone the original filterList', function() { + spyOn(filterCtrl, 'checkChange'); + + filterCtrl.originalList = []; + filterCtrl.$onInit(); + + expect(filterCtrl.originalList).toEqual(filterList); + expect(filterCtrl.checkChange).toHaveBeenCalled(); + }); + }); +})); \ No newline at end of file From f84f8bb3340df29e0ba03cbe4a4dd19be59c82fa Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 16:00:19 -0300 Subject: [PATCH 40/44] Add jsdoc --- frontend/event/eventController.js | 10 +++++++++- .../filterEventByInstitution.component.js | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index 81d353f27..cda1f890c 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -278,15 +278,23 @@ eventCtrl.toolbarItems = eventCtrl._getToolbarMobileMenuItems(); }; + /** + * This function applies the modifications made + * to the event filter by institution, + * reloading events and filtering. + */ eventCtrl.confirmFilter = function confirmFilter() { eventCtrl.events = []; - eventCtrl.isFiltering = false; eventCtrl._actualPage = 0; eventCtrl._moreEvents = true; eventCtrl.isLoadingEvents = true; + eventCtrl.cancelFilter(); return eventCtrl.loadMoreEvents(); }; + /** + * This function cancels the filter run. + */ eventCtrl.cancelFilter = function cancelFilter() { eventCtrl.isFiltering = false; }; diff --git a/frontend/event/filterEvents/filterEventByInstitution.component.js b/frontend/event/filterEvents/filterEventByInstitution.component.js index b28f935ba..c208702b5 100644 --- a/frontend/event/filterEvents/filterEventByInstitution.component.js +++ b/frontend/event/filterEvents/filterEventByInstitution.component.js @@ -9,14 +9,27 @@ filterCtrl.enableAll = true; + /** + * This function checks if all filters are enabled + * and changes the enableAll variable to true, + * if there is at least one disabled, switch to false. + */ filterCtrl.checkChange = function checkChange() { filterCtrl.enableAll = (_.find(filterCtrl.filterList, institution => !institution.enable)) ? false : true; }; + /** + * This function enables or disables all filters, + * according to the enableAll variable + */ filterCtrl.enableOrDisableAll = function enableOrDisableAll() { filterCtrl.filterList.map(institution => institution.enable = filterCtrl.enableAll); }; + /** + * This function cancels the filter modification + * and returns it to the original state. + */ filterCtrl.cancel = function cancel() { filterCtrl.filterList.map((institution, index) => { institution.enable = filterCtrl.originalList[index].enable; @@ -30,6 +43,12 @@ }; }); + /** + * Filter events by institution component + * @example + * + * + */ app.component("filterEventsByInstitution", { templateUrl: 'app/event/filterEvents/filter_events_by_institution.html', controller: 'FilterEventsByInstitutionController', From e6dd616d6d7a6d976aaea5b899ec2d56d0b1ced8 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 16:02:15 -0300 Subject: [PATCH 41/44] Move style to css file --- frontend/event/filterEvents/filter_events_by_institution.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/event/filterEvents/filter_events_by_institution.html b/frontend/event/filterEvents/filter_events_by_institution.html index 1eb0b3fef..8a5986c49 100644 --- a/frontend/event/filterEvents/filter_events_by_institution.html +++ b/frontend/event/filterEvents/filter_events_by_institution.html @@ -14,7 +14,7 @@

Filtrar por institutição

- CANCELAR + CANCELAR FILTRAR
\ No newline at end of file From 2dd09d0a5548799bf8349ce00e6ae7b172f2e30b Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 16:10:19 -0300 Subject: [PATCH 42/44] Create filter-cancel-button class --- frontend/event/filterEvents/filter_events_by_institution.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/event/filterEvents/filter_events_by_institution.css b/frontend/event/filterEvents/filter_events_by_institution.css index e737947a1..dfb062a6f 100644 --- a/frontend/event/filterEvents/filter_events_by_institution.css +++ b/frontend/event/filterEvents/filter_events_by_institution.css @@ -38,4 +38,9 @@ grid-template-columns: auto auto; justify-content: end; margin-bottom: 10px; +} + +.filter-cancel-button { + color: white; + background-color: #7F7F7F; } \ No newline at end of file From 6a533bb1d3c840df2dd48bc1dd4d10a63fac4c27 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 16:16:29 -0300 Subject: [PATCH 43/44] Remove filter option if list instituion events --- frontend/event/eventController.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index cda1f890c..d4eca9bd9 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -262,10 +262,13 @@ title: 'Atualizar', action: () => { eventCtrl._moreEvents = true; eventCtrl._actualPage = 0; eventCtrl.events = []; eventCtrl.loadMoreEvents()} }, - { - title: 'Filtrar por instituição', action: () => {eventCtrl.isFiltering = true;} - } ]; + + if (!eventCtrl.institutionKey) { + toolbarMenuGeneralOptions.options.push({ + title: 'Filtrar por instituição', action: () => {eventCtrl.isFiltering = true;} + }); + } return toolbarMenuGeneralOptions; }; From 44b8d5b6ac9681bee7ecb150b05ffbac0ab18681 Mon Sep 17 00:00:00 2001 From: Luiz-FS Date: Fri, 8 Mar 2019 16:23:31 -0300 Subject: [PATCH 44/44] Move filter to else block --- frontend/event/eventController.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/event/eventController.js b/frontend/event/eventController.js index d4eca9bd9..4af70b3b2 100644 --- a/frontend/event/eventController.js +++ b/frontend/event/eventController.js @@ -55,14 +55,14 @@ eventCtrl.events.push(event); }); } - - eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey); if (Utils.isMobileScreen(SCREEN_SIZES.SMARTPHONE) && !eventCtrl.institutionKey) { eventCtrl.events = eventCtrl.events.filter(event => { const institution = _.find(eventCtrl.institutionsFilter, institution => institution.name === event.institution_name); return institution && institution.enable; }); + } else { + eventCtrl.events = $filter('filter')(eventCtrl.events, eventCtrl.institutionKey); } eventCtrl.isLoadingEvents = false;