index.run.js
3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* globals document:true*/
(function() {
'use strict';
angular
.module('dialoga')
.run(runAuth)
.run(runAccessibility)
.run(runHistory)
.run(runPath)
.run(runColorUtils)
.run(runBlock);
/** @ngInject */
function runAuth($rootScope, $cookies, USER_ROLES, AUTH_EVENTS, AuthService, $log){
// Listner url/state changes, and check permission
$rootScope.$on('$stateChangeStart', function (event, next) {
if(!next.data || !next.data.authorizedRoles){
$log.debug('public url/state');
return;
}
var authorizedRoles = next.data.authorizedRoles;
if (!AuthService.isAuthorized(authorizedRoles)) {
event.preventDefault();
if (AuthService.isAuthenticated()) {
// user is not allowed
$log.debug('user is not allowed');
$rootScope.$broadcast(AUTH_EVENTS.notAuthorized);
} else {
// user is not logged in
$log.debug('user is not logged in');
$rootScope.$broadcast(AUTH_EVENTS.notAuthenticated);
}
}
});
$log.debug('runAuth end.');
}
/** @ngInject */
function runAccessibility($rootScope, $timeout, $cookies, $log) {
var contrast = $cookies.get('dialoga_contraste') === "true";
adjustContrast(contrast);
function adjustContrast(state){
var bodyEl = angular.element(document).find('body');
angular.element(bodyEl).toggleClass('contraste', !!state);
}
$rootScope.toggleContrast = function () {
contrast = !contrast;
$cookies.put('dialoga_contraste', contrast);
adjustContrast(contrast);
};
$rootScope.focusMainContent = function ($event) {
// prevent skip link from redirecting
if ($event) { $event.preventDefault(); }
var mainContentArea = document.querySelector('[role="main"]');
if ( mainContentArea ) {
$timeout(function(){
mainContentArea.focus();
},90);
}else{
$log.warn('role="main" not found.');
}
};
$log.debug('runAccessibility end.');
}
/** @ngInject */
function runHistory($rootScope, $log) {
$rootScope.$on('$stateChangeSuccess', function(event, toState, toStateParams, fromState, fromStateParams) {
$rootScope.$previousState = { state: fromState, params: fromStateParams};
});
}
/** @ngInject */
function runPath($rootScope, api, $log) {
var isProduction = (/^http:\/\/dialoga\.gov\.br\//.test(window.location.href));
$rootScope.basePath = isProduction ? api.hostProd : api.hostHom;
$log.debug('runPath end.');
}
/** @ngInject */
function runColorUtils($log) {
window.ColorLuminance = function (hex, lum) {
// validate hex string
hex = String(hex).replace(/[^0-9a-f]/gi, '');
if (hex.length < 6) {
hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];
}
lum = lum || 0;
// convert to decimal and change luminosity
var rgb = "#", c, i;
for (i = 0; i < 3; i++) {
c = parseInt(hex.substr(i*2,2), 16);
c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);
rgb += ("00"+c).substr(c.length);
}
return rgb;
}
}
/** @ngInject */
function runBlock($log) {
$log.debug('runBlock end.');
}
})();