diff --git a/src/app/components/proposal-ranking/proposal-ranking-carousel.scss b/src/app/components/proposal-ranking/proposal-ranking-carousel.scss
new file mode 100644
index 0000000..5663233
--- /dev/null
+++ b/src/app/components/proposal-ranking/proposal-ranking-carousel.scss
@@ -0,0 +1,77 @@
+.proposal-ranking {
+ // both: carousel and list
+}
+
+.proposal-ranking--carousel {
+ background-color: #f1f1f1;
+
+ &-top {
+ position: relative;
+ color: #fff;
+ font-weight: bold;
+ font-size: 18px;
+ padding: 5px 10px;
+
+
+ &-triggers {
+ position: absolute;
+ right: 5px;
+ top: 5px;
+
+ li {
+ border: 1px solid #fff;
+ border-radius: 100%;
+ width: 15px;
+ height: 15px;
+ margin-right: 5px;
+
+ cursor: pointer;
+
+ &.active {
+ background-color: #fff;
+ }
+ }
+ }
+ }
+
+ &-middle {
+ position: relative;
+ padding: 25px 30px;
+
+ .content {
+ position: relative;
+ z-index: 2;
+ }
+
+ &-watermark {
+ position: absolute;
+ bottom: 1px;
+ left: -5px;
+ color: #ddd;
+ font-size: 150px;
+ font-weight: bold;
+ line-height: 116px;
+ z-index: 1;
+
+ }
+ }
+
+ &-bottom {
+ position: relative;
+ color: #fff;
+ padding: 10px;
+ font-weight: bold;
+ cursor: pointer;
+ z-index: 10;
+
+ &-icon {
+ .glyphicon {
+ position: relative;
+ top: -2px;
+ background-color: #fff;
+ padding: 6px 5px 5px 6px;
+ border-radius: 100%;
+ }
+ }
+ }
+}
diff --git a/src/app/components/proposal-ranking/proposal-ranking-list.scss b/src/app/components/proposal-ranking/proposal-ranking-list.scss
new file mode 100644
index 0000000..d688224
--- /dev/null
+++ b/src/app/components/proposal-ranking/proposal-ranking-list.scss
@@ -0,0 +1,82 @@
+.proposal-ranking {
+ // both: carousel and list
+}
+
+.proposal-ranking--list {
+ table {
+ border-radius: 4px;
+ overflow: hidden;
+ }
+
+ thead {
+ th{
+ color: #fff;
+ background-color: #606060;
+ &:first-child {
+ background-color: #484848;
+ text-align: right;
+ width: 160px;
+ padding-right: 20px;
+ }
+ }
+
+ .btn-question {
+ color: #484848;
+ background-color: #fff;
+ display: inline-block;
+ text-align: center;
+ width: 22px;
+ height: 22px;
+ margin-left: 10px;
+ padding: 0;
+ border-radius: 100%;
+ }
+
+ .popover {
+ color: #484848;
+ }
+ }
+
+ tbody {
+ tr {
+ background-color: #fff;
+ }
+
+ td {
+ &:first-child {
+ font-size: 22px;
+ font-weight: bold;
+ padding: 0;
+ text-align: right;
+ }
+ }
+
+ .position {
+ display: block;
+ width: 100%;
+ margin: 20px 0;
+ padding: 5px 20px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ }
+ }
+
+ // override bootstrap
+ .table-striped > tbody > tr:nth-of-type(odd) {
+ // impar
+ background-color: #eaeaea;
+
+ .position {
+ background-color: #fff;
+ }
+ }
+
+ .table-striped > tbody > tr:nth-of-type(even) {
+ // par
+ background-color: #fff;
+
+ .position {
+ background-color: #eaeaea;
+ }
+ }
+}
diff --git a/src/app/components/proposal-ranking/proposal-ranking.directive.js b/src/app/components/proposal-ranking/proposal-ranking.directive.js
index e3985c6..decbe93 100644
--- a/src/app/components/proposal-ranking/proposal-ranking.directive.js
+++ b/src/app/components/proposal-ranking/proposal-ranking.directive.js
@@ -6,15 +6,17 @@
.directive('proposalRanking', proposalRanking);
/** @ngInject */
- function proposalRanking($rootScope) {
+ function proposalRanking() {
/** @ngInject */
- function ProposalRankingController(ArticleService, $scope, $log) {
+ function ProposalRankingController(ArticleService, $scope, $element, $timeout, $log) {
$log.debug('ProposalRankingController');
var vm = this;
vm.ArticleService = ArticleService;
vm.$scope = $scope;
+ vm.$element = $element;
+ vm.$timeout = $timeout;
vm.$log = $log;
vm.init();
@@ -24,27 +26,74 @@
// initial values
var vm = this;
+ vm.activeIndex = 1;
+ vm.attachedPopover = false;
+ vm.loading = false;
+
+ if(!angular.isNumber(vm.limit)){
+ vm.limit = parseInt(vm.limit);
+ }
+
vm.loadData();
};
ProposalRankingController.prototype.loadData = function () {
// async values
- // var vm = this;
+ var vm = this;
+
+ vm.loading = true;
+
+ // simulate delay
+ vm.$timeout(function(){
+ vm.loading = false;
+ }, 2000);
+ };
+
+ ProposalRankingController.prototype.switchProposal = function (index) {
+ var vm = this;
+ if(index > 0 && index <= limit) {
+ vm.activeIndex = index;
+ }else{
+ vm.$log.warn('[switchProposal] "index" not handled:', index);
+ }
};
ProposalRankingController.prototype.showProposals = function () {
var vm = this;
- // notify parents
+ // notify parents - handled by parents
vm.$scope.$emit('see-proposals');
};
+ ProposalRankingController.prototype.showPopover = function ($event) {
+ var vm = this;
+
+ $event.stopPropagation();
+
+ var target = $event.target;
+ var elPopover = angular.element(target);
+
+ if(!vm.attachedPopover){
+ elPopover.popover({
+ html: true,
+ placement: 'top',
+ animation: true,
+ title: 'Regra de posição das propostas',
+ content: '
É calculada pelo saldo de interações das propostas (curtidas - não curtidas) dividido pela diferença de exibições entre elas.
O objetivo dessa correção é compensar o saldo de interações e a diferença de exibições das propostas que não tiveram muitas oportunidades de visualização ou das propostas que tiveram mais oportunidades de visualização que a média.
Com essa correção, é possível comparar propostas que entraram em diferentes momentos, durante todo o período da consulta.
'
+ });
+ vm.attachedPopover = true;
+ }
+
+
+ elPopover.popover('toggle');
+ };
+
var directive = {
restrict: 'E',
templateUrl: 'app/components/proposal-ranking/proposal-ranking.html',
scope: {
- limit: '=',
+ limit: '&',
display: '='
},
controller: ProposalRankingController,
diff --git a/src/app/components/proposal-ranking/proposal-ranking.html b/src/app/components/proposal-ranking/proposal-ranking.html
index 97f188f..db59312 100644
--- a/src/app/components/proposal-ranking/proposal-ranking.html
+++ b/src/app/components/proposal-ranking/proposal-ranking.html
@@ -1,15 +1,16 @@
-
+
+
1º
Lugar
-
@@ -17,11 +18,67 @@
Lorem ipsum dolor sit amet, an qui alia constituam. Forensibus scripserit pri at, sit et dolorum ancillae. Ad sea quas utamur salutandi, illud veritus propriae mea ut. Ius no timeam intellegat liberavisse, eum suscipit pertinax ad. Illum graeci postulant et pro, at clita facete quo, cibo liber ad pri.
+
1º
-
-
+
+ Veja as propostas mais vortadas
+
+
+
+
+
+
+
+
+
+
+ Colocação
+ ?
+
+ 123 PROPOSTAS
+
+
+
+
+
+ 1º
+
+
+
+
Conteúdo
+
+
+ Avalie esta proposta
+
+
+
+
+
+
+
+
+
+
+ 2º
+
+
+
+
Conteúdo
+
Avalie esta proposta
+
[STATS]
+
+
+
+
+
+
+
diff --git a/src/app/components/proposal-ranking/proposal-ranking.scss b/src/app/components/proposal-ranking/proposal-ranking.scss
deleted file mode 100644
index f497d2e..0000000
--- a/src/app/components/proposal-ranking/proposal-ranking.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-.proposal-ranking {
- // both: carousel and list
-}
-
-.proposal-ranking--carousel {
- background-color: #eee;
-
- .proposal-ranking--carousel-top {
- color: #fff;
- font-weight: bold;
- font-size: 18px;
- padding: 5px 10px;
- }
-}
diff --git a/src/app/components/proposal-related/proposal-related.directive.js b/src/app/components/proposal-related/proposal-related.directive.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/components/proposal-related/proposal-related.directive.js
diff --git a/src/app/components/proposal-related/proposal-related.html b/src/app/components/proposal-related/proposal-related.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/components/proposal-related/proposal-related.html
diff --git a/src/app/components/proposal-related/proposal-related.scss b/src/app/components/proposal-related/proposal-related.scss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/app/components/proposal-related/proposal-related.scss
diff --git a/src/app/components/proposal-stats/proposal-stats.directive.js b/src/app/components/proposal-stats/proposal-stats.directive.js
new file mode 100644
index 0000000..2380e3e
--- /dev/null
+++ b/src/app/components/proposal-stats/proposal-stats.directive.js
@@ -0,0 +1,54 @@
+(function() {
+ 'use strict';
+
+ angular
+ .module('dialoga')
+ .directive('proposalStats', proposalStats);
+
+ /** @ngInject */
+ function proposalStats() {
+
+ /** @ngInject */
+ function ProposalStatsController($log) {
+ $log.debug('ProposalStatsController');
+
+ var vm = this;
+ vm.$log = $log;
+
+ vm.init();
+ }
+
+ ProposalStatsController.prototype.init = function () {
+ // initial values
+ var vm = this;
+
+ vm.views = vm.views ? parseInt(vm.views) : 0;
+ vm.up = vm.up ? parseInt(vm.up) : 0;
+ vm.down = vm.down ? parseInt(vm.down) : 0;
+
+ vm.loadData();
+ };
+
+ ProposalStatsController.prototype.loadData = function () {
+ // async values
+ // var vm = this;
+ };
+
+ var directive = {
+ restrict: 'E',
+ templateUrl: 'app/components/proposal-stats/proposal-stats.html',
+ scope: {
+ views: '&',
+ up: '&',
+ down: '&'
+ },
+ controller: ProposalStatsController,
+ controllerAs: 'vm',
+ bindToController: true
+ };
+
+
+ return directive;
+ }
+
+})();
diff --git a/src/app/components/proposal-stats/proposal-stats.html b/src/app/components/proposal-stats/proposal-stats.html
new file mode 100644
index 0000000..f2718d1
--- /dev/null
+++ b/src/app/components/proposal-stats/proposal-stats.html
@@ -0,0 +1,14 @@
+
+
+
+ {{vm.views}}
+
+
+
+ {{vm.up}}
+
+
+
+ {{vm.down}}
+
+
diff --git a/src/app/index.run.js b/src/app/index.run.js
index 03de84b..ba2e2f7 100644
--- a/src/app/index.run.js
+++ b/src/app/index.run.js
@@ -52,23 +52,6 @@
angular.element(bodyEl).toggleClass('contraste', !!state);
}
- $rootScope.skipToContent = function() {
- angular.element('#content').attr('tabIndex', -1).focus();
- };
-
- $rootScope.skipToNavigation = function() {
- angular.element('#navigation').attr('tabIndex', -1).focus();
- };
-
- $rootScope.skipToSearch = function() {
- // angular.element('#search').attr('tabIndex', -1).focus();
- angular.element('#articleQueryFilter').attr('tabIndex', -1).focus();
- };
-
- $rootScope.skipToFooter = function() {
- angular.element('#footer').attr('tabIndex', -1).focus();
- };
-
$rootScope.actionContrast = function() {
// toggle contrast
contrast = !contrast;
@@ -76,24 +59,37 @@
adjustContrast(contrast);
};
- $rootScope.focusMainContent = function($event) {
+ $rootScope.focusOn = function(elId, $event) {
+ var el = angular.element(elId);
+ $rootScope.scrollTo(el, $event);
+ el.attr('tabIndex', -1).focus();
+ };
- // prevent skip link from redirecting
- if ($event) { $event.preventDefault(); }
+ $rootScope.focusMainContent = function($event) {
var mainContentArea = document.querySelector('[role="main"]');
if (mainContentArea) {
$timeout(function() {
- var $el = angular.element(mainContentArea);
-
- angular.element('body').animate({scrollTop: $el.offset().top}, 'slow');
- }, 90);
+ $rootScope.scrollTo(mainContentArea, $event);
+ }, 90); // force queue
} else {
$log.warn('role="main" not found.');
}
};
+ $rootScope.scrollTo = function(target, $event) {
+
+ // prevent skip link from redirecting
+ if ($event) { $event.preventDefault(); }
+
+ if(angular.isString(target)){
+ target = angular.element(target);
+ }
+
+ angular.element('body').animate({scrollTop: target.offset().top}, 'fast');
+ };
+
$log.debug('[RUN] Accessibility end.');
}
diff --git a/src/app/index.scss b/src/app/index.scss
index 46436cf..a079195 100644
--- a/src/app/index.scss
+++ b/src/app/index.scss
@@ -140,16 +140,15 @@ body {
// Theme
@each $category, $color in $categories {
.#{$category} {
- .color-theme-fg {
- color: $color;
- }
-
- .color-theme-bg {
- background-color: $color;
- }
+ .color-theme-fg { color: $color; }
+ .color-theme-bg { background-color: $color;}
}
}
+$common-color: #5E739E;
+.color-theme-common-fg {color: $common-color; }
+.color-theme-common-bg {background-color: $common-color; }
+
// Hack to fix "Barra do Brasil"
#barra-brasil .brasil-flag {
diff --git a/src/app/pages/footer/footer.html b/src/app/pages/footer/footer.html
index 198ad27..6817d1a 100644
--- a/src/app/pages/footer/footer.html
+++ b/src/app/pages/footer/footer.html
@@ -3,7 +3,8 @@
diff --git a/src/app/pages/header/header.html b/src/app/pages/header/header.html
index ca45574..1f448be 100644
--- a/src/app/pages/header/header.html
+++ b/src/app/pages/header/header.html
@@ -1,4 +1,4 @@
-