Commit 20329d93f48a23c3bbfdd324424ec7312f38d29f

Authored by Leonardo Merlin
2 parents dbafb5a8 9cb9afb1

Merge branch 'master' into merlin

data.js 0 → 100644
... ... @@ -0,0 +1,738 @@
  1 +/**
  2 + * Use https://github.com/typicode/json-server for fake endpoint server.
  3 + * Example: $ json-server data.js -p 9000 -w data.js
  4 + */
  5 +module.exports = function () {
  6 + 'use strict';
  7 + var data = {};
  8 +
  9 + // add /api/v1/articles path
  10 + // data.api = {};
  11 + // data.api.v1 = {};
  12 + // data.api.v1.articles = [];
  13 +
  14 + // add data to articles path
  15 + // data.api.v1.articles.push({
  16 + data.articles = [];
  17 +
  18 + // json get from hom on 26/08/2015
  19 + var articleHome = {
  20 + id: 103358,
  21 + "article":{
  22 + "id": 103358,
  23 + "abstract": "<p style=\"text-align: center;\"><iframe src=\"https://www.youtube.com/embed/kpAdrO-emV0?rel=0&amp;showinfo=0&amp;iv_load_policy=3&amp;controls=1\" style=\"max-width: 1000px; left: 5%;\" width=\"275\" height=\"200\"></iframe></p>",
  24 +
  25 + "title": "Dialoga Brasil",
  26 + "categories": [
  27 + {
  28 + "name": "Saúde",
  29 + "id": 180,
  30 + "slug": "saude",
  31 + "image": null
  32 + },
  33 + {
  34 + "name": "Segurança Pública",
  35 + "id": 182,
  36 + "slug": "seguranca-publica",
  37 + "image": null
  38 + },
  39 + {
  40 + "name": "Educação",
  41 + "id": 181,
  42 + "slug": "educacao",
  43 + "image": null
  44 + },
  45 + {
  46 + "name": "Redução da Pobreza",
  47 + "id": 183,
  48 + "slug": "reducao-da-pobreza",
  49 + "image": null
  50 + },
  51 + {
  52 + "name": "Cultura",
  53 + "id": 194,
  54 + "slug": "cultura",
  55 + "image": null
  56 + }
  57 + ],
  58 + "image": null,
  59 + "setting": {
  60 + "custom_body_label": "Corpo",
  61 + "phase": "proposals",
  62 + "allow_topics": true,
  63 + "moderate_comments": false,
  64 + "comment_paragraph_plugin_activate": false,
  65 + "author_name": "Leandro Nunes dos Santos",
  66 + "moderate_proposals": true,
  67 + "allow_members_to_edit": false
  68 + },
  69 + "position": null,
  70 + "children": [
  71 + {
  72 + "id": 103390,
  73 + "abstract": "<p>Prevenção, tratamento e enfrentamento ao tráfico.</p>",
  74 + "title": "Crack, é possível vencer!",
  75 + "categories": [
  76 + {
  77 + "name": "Segurança Pública",
  78 + "id": 182,
  79 + "slug": "seguranca-publica",
  80 + "image": null
  81 + }
  82 + ],
  83 + "image": {
  84 + "url": "/image_uploads/dialoga/0000/0104/crack.jpg"
  85 + },
  86 + "setting": {
  87 + "color": "#00ff00",
  88 + "moderate_comments": false,
  89 + "comment_paragraph_plugin_activate": false,
  90 + "author_name": "Ronald Emerson Scherolt da Costa",
  91 + "allow_members_to_edit": false
  92 + },
  93 + "position": 14
  94 + },
  95 + {
  96 + "id": 103521,
  97 + "abstract": "<p>Mais atendimento nos municípios, mais saúde para quem mais precisa.</p>",
  98 + "title": "Mais Médicos",
  99 + "categories": [
  100 + {
  101 + "name": "Saúde",
  102 + "id": 180,
  103 + "slug": "saude",
  104 + "image": null
  105 + }
  106 + ],
  107 + "image": {
  108 + "url": "/image_uploads/dialoga/0000/0025/Mais_M_dicos.jpg"
  109 + },
  110 + "setting": {
  111 + "color": "#ffe599",
  112 + "moderate_comments": false,
  113 + "comment_paragraph_plugin_activate": false,
  114 + "author_name": "Ronald Emerson Scherolt da Costa",
  115 + "allow_members_to_edit": false
  116 + },
  117 + "position": 1
  118 + },
  119 + {
  120 + "id": 103457,
  121 + "abstract": "<p>Ação conjunta e cooperação transfronteiriça.</p>",
  122 + "title": "Proteção das Fronteiras",
  123 + "categories": [
  124 + {
  125 + "name": "Segurança Pública",
  126 + "id": 182,
  127 + "slug": "seguranca-publica",
  128 + "image": null
  129 + }
  130 + ],
  131 + "image": {
  132 + "url": "/image_uploads/dialoga/0000/0110/fronteira_redim.jpg"
  133 + },
  134 + "setting": {
  135 + "color": "#a64d79",
  136 + "moderate_comments": false,
  137 + "comment_paragraph_plugin_activate": false,
  138 + "author_name": "Ronald Emerson Scherolt da Costa",
  139 + "allow_members_to_edit": false
  140 + },
  141 + "position": 15
  142 + },
  143 + {
  144 + "id": 103612,
  145 + "abstract": "<p>Garantir água para beber e produzir.</p>",
  146 + "title": "Cisternas",
  147 + "categories": [
  148 + {
  149 + "name": "Redução da Pobreza",
  150 + "id": 183,
  151 + "slug": "reducao-da-pobreza",
  152 + "image": null
  153 + }
  154 + ],
  155 + "image": {
  156 + "url": "/image_uploads/dialoga/0000/0039/cisterna_redim.jpg"
  157 + },
  158 + "setting": {
  159 + "color": "#0000ff",
  160 + "moderate_comments": false,
  161 + "comment_paragraph_plugin_activate": false,
  162 + "author_name": "Ronald Emerson Scherolt da Costa",
  163 + "allow_members_to_edit": false
  164 + },
  165 + "position": 20
  166 + },
  167 + {
  168 + "id": 103442,
  169 + "abstract": "<p>Complemento à renda e acompanhamento em educação e saúde.</p>",
  170 + "title": "Bolsa Família",
  171 + "categories": [
  172 + {
  173 + "name": "Redução da Pobreza",
  174 + "id": 183,
  175 + "slug": "reducao-da-pobreza",
  176 + "image": null
  177 + }
  178 + ],
  179 + "image": {
  180 + "url": "/image_uploads/dialoga/0000/0013/bolsa_familia_redim.jpg"
  181 + },
  182 + "setting": {
  183 + "color": "#ff9900",
  184 + "moderate_comments": false,
  185 + "comment_paragraph_plugin_activate": false,
  186 + "author_name": "Ronald Emerson Scherolt da Costa",
  187 + "allow_members_to_edit": false
  188 + },
  189 + "position": 17
  190 + },
  191 + {
  192 + "id": 103673,
  193 + "abstract": "<p>A melhor escolha é se informar.</p>",
  194 + "title": "Incentivo ao Parto Normal",
  195 + "categories": [
  196 + {
  197 + "name": "Saúde",
  198 + "id": 180,
  199 + "slug": "saude",
  200 + "image": null
  201 + }
  202 + ],
  203 + "image": {
  204 + "url": "/image_uploads/dialoga/0000/0092/parto-normal.jpg"
  205 + },
  206 + "setting": {
  207 + "color": "#ff0000",
  208 + "moderate_comments": false,
  209 + "comment_paragraph_plugin_activate": false,
  210 + "author_name": "Ronald Emerson Scherolt da Costa",
  211 + "allow_members_to_edit": false
  212 + },
  213 + "position": 6
  214 + },
  215 + {
  216 + "id": 103397,
  217 + "abstract": "<p>Renda, inclusão produtiva e acesso a serviços.</p>",
  218 + "title": "Brasil Sem Miséria",
  219 + "categories": [
  220 + {
  221 + "name": "Redução da Pobreza",
  222 + "id": 183,
  223 + "slug": "reducao-da-pobreza",
  224 + "image": null
  225 + }
  226 + ],
  227 + "image": {
  228 + "url": "/image_uploads/dialoga/0000/0116/bsm_redim.jpg"
  229 + },
  230 + "setting": {
  231 + "color": "",
  232 + "moderate_comments": false,
  233 + "comment_paragraph_plugin_activate": false,
  234 + "author_name": "Ronald Emerson Scherolt da Costa",
  235 + "allow_members_to_edit": false
  236 + },
  237 + "position": 18
  238 + },
  239 + {
  240 + "id": 121505,
  241 + "abstract": "<p>Um novo jeito de ver e de fazer cultura</p>",
  242 + "title": "Agenda Seculo XXI",
  243 + "categories": [
  244 + {
  245 + "name": "Cultura",
  246 + "id": 194,
  247 + "slug": "cultura",
  248 + "image": null
  249 + }
  250 + ],
  251 + "image": {
  252 + "url": "/image_uploads/dialoga/0000/0166/Abertura_AGENDA_SECULO_XXI-v4.jpg"
  253 + },
  254 + "setting": {
  255 + "color": "",
  256 + "allow_members_to_edit": false,
  257 + "moderate_comments": false,
  258 + "comment_paragraph_plugin_activate": false,
  259 + "author_name": "leonardo.merlin"
  260 + },
  261 + "position": null
  262 + },
  263 + {
  264 + "id": 121526,
  265 + "abstract": "<p>Cultura e arte como base para a educação integral</p>",
  266 + "title": "Cultura e Educação",
  267 + "categories": [
  268 + {
  269 + "name": "Cultura",
  270 + "id": 194,
  271 + "slug": "cultura",
  272 + "image": null
  273 + }
  274 + ],
  275 + "image": {
  276 + "url": "/image_uploads/dialoga/0000/0177/Abertura-cultura-e-educacao-v2.jpg"
  277 + },
  278 + "setting": {
  279 + "color": "",
  280 + "allow_members_to_edit": false,
  281 + "moderate_comments": false,
  282 + "comment_paragraph_plugin_activate": false,
  283 + "author_name": "leonardo.merlin"
  284 + },
  285 + "position": null
  286 + },
  287 + {
  288 + "id": 103485,
  289 + "abstract": "<p>Caminho para uma educação de qualidade.</p>",
  290 + "title": "Valorização dos Professores",
  291 + "categories": [
  292 + {
  293 + "name": "Educação",
  294 + "id": 181,
  295 + "slug": "educacao",
  296 + "image": null
  297 + }
  298 + ],
  299 + "image": {
  300 + "url": "/image_uploads/dialoga/0000/0140/valorizacao_professor.jpg"
  301 + },
  302 + "setting": {
  303 + "color": "#ffff00",
  304 + "moderate_comments": false,
  305 + "comment_paragraph_plugin_activate": false,
  306 + "author_name": "Ronald Emerson Scherolt da Costa",
  307 + "allow_members_to_edit": false
  308 + },
  309 + "position": 11
  310 + },
  311 + {
  312 + "id": 103663,
  313 + "abstract": "<p>Mais educação profissional e tecnológica, mais desenvolvimento</p>",
  314 + "title": "Ensino Técnico",
  315 + "categories": [
  316 + {
  317 + "name": "Educação",
  318 + "id": 181,
  319 + "slug": "educacao",
  320 + "image": null
  321 + }
  322 + ],
  323 + "image": {
  324 + "url": "/image_uploads/dialoga/0000/0134/Ensino_tecnico.jpg"
  325 + },
  326 + "setting": {
  327 + "color": "#d0e0e3",
  328 + "moderate_comments": false,
  329 + "comment_paragraph_plugin_activate": false,
  330 + "author_name": "Ronald Emerson Scherolt da Costa",
  331 + "allow_members_to_edit": false
  332 + },
  333 + "position": 10
  334 + },
  335 + {
  336 + "id": 121514,
  337 + "abstract": "<p>Reconhecimento, fortalecimento e mobilização das comunidades que fazem cultura no Brasil</p>",
  338 + "title": "Cultura Viva",
  339 + "categories": [
  340 + {
  341 + "name": "Cultura",
  342 + "id": 194,
  343 + "slug": "cultura",
  344 + "image": null
  345 + }
  346 + ],
  347 + "image": {
  348 + "url": "/image_uploads/dialoga/0000/0167/Abertura_Cultura_Viva.jpg"
  349 + },
  350 + "setting": {
  351 + "color": "",
  352 + "allow_members_to_edit": false,
  353 + "moderate_comments": false,
  354 + "comment_paragraph_plugin_activate": false,
  355 + "author_name": "leonardo.merlin"
  356 + },
  357 + "position": null
  358 + },
  359 + {
  360 + "id": 103592,
  361 + "abstract": "<p>Garantir acesso à proteção social.</p>",
  362 + "title": "Assistência Social",
  363 + "categories": [
  364 + {
  365 + "name": "Redução da Pobreza",
  366 + "id": 183,
  367 + "slug": "reducao-da-pobreza",
  368 + "image": null
  369 + }
  370 + ],
  371 + "image": {
  372 + "url": "/image_uploads/dialoga/0000/0122/assistencia_social.jpg"
  373 + },
  374 + "setting": {
  375 + "color": "#a61c00",
  376 + "moderate_comments": false,
  377 + "comment_paragraph_plugin_activate": false,
  378 + "author_name": "Ronald Emerson Scherolt da Costa",
  379 + "allow_members_to_edit": false
  380 + },
  381 + "position": 19
  382 + },
  383 + {
  384 + "id": 103426,
  385 + "abstract": "<p>Da saúde se cuida todos os dias.</p>",
  386 + "title": "Vida saudável",
  387 + "categories": [
  388 + {
  389 + "name": "Saúde",
  390 + "id": 180,
  391 + "slug": "saude",
  392 + "image": null
  393 + }
  394 + ],
  395 + "image": {
  396 + "url": "/image_uploads/dialoga/0000/0046/vida_saudavel.jpg"
  397 + },
  398 + "setting": {
  399 + "color": "#d9d2e9",
  400 + "moderate_comments": false,
  401 + "comment_paragraph_plugin_activate": false,
  402 + "author_name": "Ronald Emerson Scherolt da Costa",
  403 + "allow_members_to_edit": false
  404 + },
  405 + "position": 7
  406 + },
  407 + {
  408 + "id": 103507,
  409 + "abstract": "<p>Tecnologia a serviço da segurança do cidadão.</p>",
  410 + "title": "Sinesp",
  411 + "categories": [
  412 + {
  413 + "name": "Segurança Pública",
  414 + "id": 182,
  415 + "slug": "seguranca-publica",
  416 + "image": null
  417 + }
  418 + ],
  419 + "image": {
  420 + "url": "/image_uploads/dialoga/0000/0098/sinesp.png"
  421 + },
  422 + "setting": {
  423 + "color": "#00ff00",
  424 + "moderate_comments": false,
  425 + "comment_paragraph_plugin_activate": false,
  426 + "author_name": "Ronald Emerson Scherolt da Costa",
  427 + "allow_members_to_edit": false
  428 + },
  429 + "position": 12
  430 + },
  431 + {
  432 + "id": 103359,
  433 + "abstract": "<p>Acesso a exames e consultas com especialistas.</p>",
  434 + "title": "Mais Especialidades",
  435 + "categories": [
  436 + {
  437 + "name": "Saúde",
  438 + "id": 180,
  439 + "slug": "saude",
  440 + "image": null
  441 + }
  442 + ],
  443 + "image": {
  444 + "url": "/image_uploads/dialoga/0000/0083/mais_especialidades1.png"
  445 + },
  446 + "setting": {
  447 + "color": "#ea9999",
  448 + "moderate_comments": false,
  449 + "comment_paragraph_plugin_activate": false,
  450 + "author_name": "Ronald Emerson Scherolt da Costa",
  451 + "allow_members_to_edit": false
  452 + },
  453 + "position": 2
  454 + },
  455 + {
  456 + "id": 103683,
  457 + "abstract": "<p>Saúde não tem preço.</p>",
  458 + "title": "Aqui tem Farmácia Popular",
  459 + "categories": [
  460 + {
  461 + "name": "Saúde",
  462 + "id": 180,
  463 + "slug": "saude",
  464 + "image": null
  465 + }
  466 + ],
  467 + "image": {
  468 + "url": "/image_uploads/dialoga/0000/0019/saude_nao_tem_preco.jpg"
  469 + },
  470 + "setting": {
  471 + "color": "#e69138",
  472 + "moderate_comments": false,
  473 + "comment_paragraph_plugin_activate": false,
  474 + "author_name": "Ronald Emerson Scherolt da Costa",
  475 + "allow_members_to_edit": false
  476 + },
  477 + "position": 5
  478 + },
  479 + {
  480 + "id": 103695,
  481 + "abstract": "<p>Novo modelo de atuação em Segurança Pública.</p>",
  482 + "title": "Segurança Pública Integrada",
  483 + "categories": [
  484 + {
  485 + "name": "Segurança Pública",
  486 + "id": 182,
  487 + "slug": "seguranca-publica",
  488 + "image": null
  489 + }
  490 + ],
  491 + "image": {
  492 + "url": "/image_uploads/dialoga/0000/0152/policiaintegrada.jpg"
  493 + },
  494 + "setting": {
  495 + "color": "#ff00ff",
  496 + "moderate_comments": false,
  497 + "comment_paragraph_plugin_activate": false,
  498 + "author_name": "Ronald Emerson Scherolt da Costa",
  499 + "allow_members_to_edit": false
  500 + },
  501 + "position": 13
  502 + },
  503 + {
  504 + "id": 103379,
  505 + "abstract": "<p>Resgate e atendimento 24 horas, sete dias da semana.</p>",
  506 + "title": "SAMU 192 e UPAs",
  507 + "categories": [
  508 + {
  509 + "name": "Saúde",
  510 + "id": 180,
  511 + "slug": "saude",
  512 + "image": null
  513 + }
  514 + ],
  515 + "image": {
  516 + "url": "/image_uploads/dialoga/0000/0060/SAMU.jpg"
  517 + },
  518 + "setting": {
  519 + "color": "#45818e",
  520 + "moderate_comments": false,
  521 + "comment_paragraph_plugin_activate": false,
  522 + "author_name": "Ronald Emerson Scherolt da Costa",
  523 + "allow_members_to_edit": false
  524 + },
  525 + "position": 4
  526 + },
  527 + {
  528 + "id": 103494,
  529 + "abstract": "<p>Da Educação Infantil ao Ensino Médio.</p>",
  530 + "title": "Educação Básica",
  531 + "categories": [
  532 + {
  533 + "name": "Educação",
  534 + "id": 181,
  535 + "slug": "educacao",
  536 + "image": null
  537 + }
  538 + ],
  539 + "image": {
  540 + "url": "/image_uploads/dialoga/0000/0076/Educa__o_B_sica.jpg"
  541 + },
  542 + "setting": {
  543 + "color": "#fce5cd",
  544 + "moderate_comments": false,
  545 + "comment_paragraph_plugin_activate": false,
  546 + "author_name": "Ronald Emerson Scherolt da Costa",
  547 + "allow_members_to_edit": false
  548 + },
  549 + "position": 8
  550 + },
  551 + {
  552 + "id": 103644,
  553 + "abstract": "<p>Um caminho de oportunidades com o Enem: Sisu, Prouni, Fies, Ciência sem Fronteiras</p>",
  554 + "title": "Ensino Superior",
  555 + "categories": [
  556 + {
  557 + "name": "Educação",
  558 + "id": 181,
  559 + "slug": "educacao",
  560 + "image": null
  561 + }
  562 + ],
  563 + "image": {
  564 + "url": "/image_uploads/dialoga/0000/0128/enem.jpg"
  565 + },
  566 + "setting": {
  567 + "color": "#cfe2f3",
  568 + "moderate_comments": false,
  569 + "comment_paragraph_plugin_activate": false,
  570 + "author_name": "Ronald Emerson Scherolt da Costa",
  571 + "allow_members_to_edit": false
  572 + },
  573 + "position": 9
  574 + },
  575 + {
  576 + "id": 121499,
  577 + "abstract": "<p>Valorização da arte e da cultura em suas múltiplas possibilidades</p>",
  578 + "title": "Política Nacional das Artes",
  579 + "categories": [
  580 + {
  581 + "name": "Cultura",
  582 + "id": 194,
  583 + "slug": "cultura",
  584 + "image": null
  585 + }
  586 + ],
  587 + "image": {
  588 + "url": "/image_uploads/dialoga/0000/0159/Banner_Pol_tica_Nacional_das_Artes.jpg"
  589 + },
  590 + "setting": {
  591 + "color": "",
  592 + "allow_members_to_edit": false,
  593 + "moderate_comments": false,
  594 + "comment_paragraph_plugin_activate": false,
  595 + "author_name": "leonardo.merlin"
  596 + },
  597 + "position": null
  598 + },
  599 + {
  600 + "id": 103472,
  601 + "abstract": "<p>Polícia Federal, Polícia Rodoviária Federal e Força Nacional de Segurança Pública.</p>",
  602 + "title": "Forças Federais de Segurança",
  603 + "categories": [
  604 + {
  605 + "name": "Segurança Pública",
  606 + "id": 182,
  607 + "slug": "seguranca-publica",
  608 + "image": null
  609 + }
  610 + ],
  611 + "image": {
  612 + "url": "/image_uploads/dialoga/0000/0031/federais2.png"
  613 + },
  614 + "setting": {
  615 + "color": "",
  616 + "moderate_comments": false,
  617 + "comment_paragraph_plugin_activate": false,
  618 + "author_name": "Ronald Emerson Scherolt da Costa",
  619 + "allow_members_to_edit": false
  620 + },
  621 + "position": 16
  622 + },
  623 + {
  624 + "id": 121492,
  625 + "abstract": "<p>Apoio ao audiovisual brasileiro: ampliação da produção, da difusão e do acesso</p>",
  626 + "title": "Brasil de Todas as Telas",
  627 + "categories": [
  628 + {
  629 + "name": "Cultura",
  630 + "id": 194,
  631 + "slug": "cultura",
  632 + "image": null
  633 + }
  634 + ],
  635 + "image": {
  636 + "url": "/image_uploads/dialoga/0000/0165/brasil-de-todas-telas-banner.jpg"
  637 + },
  638 + "setting": {
  639 + "color": "",
  640 + "allow_members_to_edit": false,
  641 + "moderate_comments": false,
  642 + "comment_paragraph_plugin_activate": false,
  643 + "author_name": "leonardo.merlin"
  644 + },
  645 + "position": null
  646 + },
  647 + {
  648 + "id": 121521,
  649 + "abstract": "<p>Mais acesso a cultura para trabalhadores e trabalhadoras</p>",
  650 + "title": "Vale-Cultura",
  651 + "categories": [
  652 + {
  653 + "name": "Cultura",
  654 + "id": 194,
  655 + "slug": "cultura",
  656 + "image": null
  657 + }
  658 + ],
  659 + "image": {
  660 + "url": "/image_uploads/dialoga/0000/0175/Abertura_Vale_cultura-v3.jpg"
  661 + },
  662 + "setting": {
  663 + "color": "",
  664 + "allow_members_to_edit": false,
  665 + "moderate_comments": false,
  666 + "comment_paragraph_plugin_activate": false,
  667 + "author_name": "leonardo.merlin"
  668 + },
  669 + "position": null
  670 + },
  671 + {
  672 + "id": 103416,
  673 + "abstract": "<p>Estrutura adequada para atender melhor a população na atenção básica.</p>",
  674 + "title": "Melhorar os Postos de Saúde",
  675 + "categories": [
  676 + {
  677 + "name": "Saúde",
  678 + "id": 180,
  679 + "slug": "saude",
  680 + "image": null
  681 + }
  682 + ],
  683 + "image": {
  684 + "url": "/image_uploads/dialoga/0000/0053/requalif_redim.jpg"
  685 + },
  686 + "setting": {
  687 + "color": "#cc4125",
  688 + "moderate_comments": false,
  689 + "comment_paragraph_plugin_activate": false,
  690 + "author_name": "Ronald Emerson Scherolt da Costa",
  691 + "allow_members_to_edit": false
  692 + },
  693 + "position": 3
  694 + },
  695 + {
  696 + "id": 121501,
  697 + "abstract": "<p>Preservação do patrimônio e qualidade de vida para os cidadãos</p>",
  698 + "title": "PAC Cidades Históricas",
  699 + "categories": [
  700 + {
  701 + "name": "Cultura",
  702 + "id": 194,
  703 + "slug": "cultura",
  704 + "image": null
  705 + }
  706 + ],
  707 + "image": {
  708 + "url": "/image_uploads/dialoga/0000/0168/Abertura__PAC_Cidades_Historicas-v3.JPG"
  709 + },
  710 + "setting": {
  711 + "color": "",
  712 + "allow_members_to_edit": false,
  713 + "moderate_comments": false,
  714 + "comment_paragraph_plugin_activate": false,
  715 + "author_name": "leonardo.merlin"
  716 + },
  717 + "position": null
  718 + }
  719 + ]
  720 + }
  721 + };
  722 + data.articles.push(articleHome);
  723 +
  724 + data.articles.push({
  725 + "id":103521,
  726 + "article":{"id":103521,"body":"\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch2\u003EMais M\u00e9dicos\u003Csmall\u003E Mais atendimento nos munic\u00edpios, mais sa\u00fade para quem mais precisa.\u003C/small\u003E\u003C/h2\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6\"\u003E\u003Cimg class=\"center-block img-responsive\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/mais-medicos-foto1.jpg\" alt=\"Foto colorida mostra um M\u00e9dico examinando uma menina. Ele est\u00e1 com uma lanterna na m\u00e3o e ela est\u00e1 com a l\u00edngua para fora.\" width=\"640\" height=\"373\" /\u003E\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6\"\u003E\r\n\u003Cp\u003EEste programa garante m\u00e9dicos nos postos de sa\u00fade de todo o Pa\u00eds. O\u00a0Mais M\u00e9dicos come\u00e7ou em 2013 e j\u00e1 mostra resultados positivos: \u00e9 muito bem avaliado por 95% dos usu\u00e1rios, segundo pesquisa feita pela UFMG / Ipespe, em 2014.\u003C/p\u003E\r\n\u003Cp\u003EO programa veio para enfrentar uma car\u00eancia hist\u00f3rica de m\u00e9dicos em muitos munic\u00edpios do Brasil. Antes do lan\u00e7amento do Mais M\u00e9dicos, 22 estados tinham um n\u00famero de m\u00e9dicos abaixo da m\u00e9dia nacional. Cinco desses estados tinham menos de 1 m\u00e9dico para cada mil habitantes.\u003C/p\u003E\r\n\u003Cp\u003EEntre 2013 e 2014, o governo federal selecionou e levou 14.462 m\u00e9dicos para 3.785 munic\u00edpios. Assim, garantiu atendimento para 50 milh\u00f5es de pessoas que precisavam se deslocar a outras cidades, nem sempre pr\u00f3ximas, para ter atendimento m\u00e9dico.\u003C/p\u003E\r\n\u003Cp\u003EEm 2015, chegamos a 18 mil vagas para m\u00e9dicos no programa. Beneficiamos 63 milh\u00f5es de pessoas, em mais de 4 mil munic\u00edpios. N\u00e3o h\u00e1 um \u00fanico munic\u00edpio brasileiro sem atendimento m\u00e9dico.\u003C/p\u003E\r\n\u003Cp\u003EOs m\u00e9dicos brasileiros se destacaram, em 2015: 92% dos m\u00e9dicos que aderiram ao programa s\u00e3o brasileiros.\u003C/p\u003E\r\n\u003Cp\u003ETodos os m\u00e9dicos rec\u00e9m-formados que participam do Mais M\u00e9dicos recebem um b\u00f4nus de 10% em sua nota na prova de resid\u00eancia, como incentivo a sua atua\u00e7\u00e3o nesta tarefa de levar atendimento \u00e0 sa\u00fade a nossa popula\u00e7\u00e3o.\u003C/p\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Cdiv class=\"text-center\"\u003E\u003Cimg class=\"img-responsive center-block\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/mais-medicos-foto2.jpg\" alt=\"Infogr\u00e1fico mostra a aceita\u00e7\u00e3o do Mais M\u00e9dico de 95% dos usu\u00e1rios.\" width=\"501\" height=\"135\" /\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch3\u003EEvolu\u00e7\u00e3o do programa\u003C/h3\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\u003Cimg class=\"center-block img-responsive\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/mais-medicos-foto3.jpg\" alt=\"Dois mapas do Brasil mostrando a evolu\u00e7\u00e3o do programa, um com o n\u00famero de m\u00e9dicos do programa em 2013 com 1.136 m\u00e9dicos e o outro em 2015 com 18.247 m\u00e9dicos.\" width=\"752\" height=\"548\" /\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row bloco-destaque\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch4\u003EForam criadas 4.600 vagas de gradua\u00e7\u00e3o e 2.586 vagas de resid\u00eancia\u003C/h4\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-5 col-sm-5\"\u003E\r\n\u003Cp\u003EO Programa Mais M\u00e9dicos leva para o interior novas vagas em cursos de medicina, investindo na qualidade da forma\u00e7\u00e3o de m\u00e9dicos no Brasil e aumentando o n\u00famero de novos profissionais.\u003C/p\u003E\r\n\u003Cp\u003ES\u00e3o oferecidas, tamb\u00e9m, mais vagas de resid\u00eancia m\u00e9dica na rede de sa\u00fade, para formar especialistas que atendam \u00e0s necessidades de todas as regi\u00f5es do pa\u00eds.\u003Cimg class=\"center-block img-responsive\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/mais-medicos-foto5.jpg\" alt=\"Gr\u00e1fico de barra, com duas colunas. Uma mostra o crescimento de bolsas em outras especialidades de sa\u00fade. Em 2010 o n\u00famero de 499 e 2.875 em 2015. A outra barra mostra o crescimento de bolsas em resid\u00eancia. 788 vagas de resid\u00eancia em 2010 e 4.952 bolsas em 2015. Ao lado do gr\u00e1fico tem o texto : A cada ano, o Minist\u00e9rio da Sa\u00fade financia um n\u00famero maior de bolsas para forma\u00e7\u00e3o e especializa\u00e7\u00e3o. Ao lado foto mostra quatro m\u00e9dicos, duas mulheres e dois homens de jaleco branco e estetosc\u00f3pio no pesco\u00e7o e sorrindo.\" width=\"756\" height=\"397\" /\u003E\u003C/p\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch3 class=\"titulo-destaque\"\u003EHoje, das 22.344 vagas em cursos de medicina, 52% est\u00e3o localizados no interior.\u003C/h3\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\u003Cimg class=\"center-block img-responsive\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/maismedicos-graficointeriorv3.jpg\" alt=\"Gr\u00e1fico de linha mostra a evolu\u00e7\u00e3o no n\u00famero de vagas nos cursos de medicina. A linha cinza mostra que em 1994 tinha 4.884 vagas na capital e 10.637 vagas em 2015. A linha azul mostra 3.878 vagas no interior em 1994 e 14.522 em 2015\" width=\"748\" height=\"435\" /\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch3\u003ECompromissos\u003C/h3\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\u003Cimg class=\"center-block img-responsive\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/mais-medicos/imagens/mais-medicos-foto7.png\" alt=\"Foto mostra uma m\u00e3o de mulher segurando um Estetosc\u00f3pio com a sigla do SUS (Sistema \u00danico de Sa\u00fade).\" width=\"327\" height=\"327\" /\u003E\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\r\n\u003Cul class=\"list-unstyled\"\u003E\r\n\u003Cli\u003ELevar atendimento m\u00e9dico a 70 milh\u00f5es de pessoas at\u00e9 2018.\u003C/li\u003E\r\n\u003Cli\u003EAt\u00e9 2017, criar mais 6,8 mil novas vagas em faculdades de medicina, chegando a 11,5 mil.\u003C/li\u003E\r\n\u003Cli\u003EAt\u00e9 2018, criar mais 9,8 mil vagas de resid\u00eancia m\u00e9dica chegando a 12,4 mil.\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E"}
  727 + });
  728 + data.articles.push({
  729 + id: 103507,
  730 + "article": {"id":103507,"body":"\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch2\u003ESINESP\u003Csmall\u003ETecnologia a servi\u00e7o da seguran\u00e7a do cidad\u00e3o.\u003C/small\u003E\u003C/h2\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\u003Cimg class=\"img-responsive center-block\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/sinesp/imagens/grafico-sinesp-2.jpg\" alt=\"Infogr\u00e1fico com o mapa do Brasil ligado por pontilhados a um monitor com o texto: base de dados. Outro pontilhado liga o monitor a cinco pictogramas, o primeiro a figura de uma engrenagem com o texto: pain\u00e9is gerenciais; o segundo um gr\u00e1fico de barras com o texto: gr\u00e1ficos anal\u00edticos; o terceiro uma folha de papel com escrito e o texto: relat\u00f3rios; a quarta um mapa do Brasil com o texto: mapas estat\u00edsticos e o quinto com tr\u00eas pessoas e o texto: planos de a\u00e7\u00e3o. Ao lado desse infogr\u00e1fico o texto: Sinesp \u2013 Sistema Nacional de Informa\u00e7\u00f5es de Seguran\u00e7a P\u00fablica, Prisionais e sobre Drogas. Atendimentos a emerg\u00eancias municipais, estaduais e federais (190, 191, 192, 193 e 197). Dados centralizados e consolidados. Atualiza\u00e7\u00e3o em tempo real. Sincroniza\u00e7\u00e3o das bases. Boletins de ocorr\u00eancia. Inqu\u00e9ritos policiais civis estaduais e federais. \" width=\"784\" height=\"598\" /\u003E\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\r\n\u003Cp\u003EO \u003Cstrong\u003ESINESP - Sistema Nacional de Informa\u00e7\u00f5es de Seguran\u00e7a P\u00fablica, Prisionais e sobre Drogas\u003C/strong\u003E \u00e9 um servi\u00e7o in\u00e9dito no Brasil. Re\u00fane, sistematiza, analisa e coloca \u00e0 disposi\u00e7\u00e3o dos cidad\u00e3os informa\u00e7\u00f5es sobre seguran\u00e7a p\u00fablica, justi\u00e7a, drogas e sistema prisional.\u003C/p\u003E\r\n\u003Cp\u003EImplementado pelo governo federal, em parceria com os 26 estados e o Distrito Federal, o sistema est\u00e1 ajudando a \u003Cstrong\u003Emelhorar a qualidade dos servi\u00e7os prestados \u003C/strong\u003E pela seguran\u00e7a p\u00fablica.\u003C/p\u003E\r\n\u003Cp\u003EO SINESP ajuda gestores a planejar e executar a\u00e7\u00f5es integradas contra o crime e a viol\u00eancia. Al\u00e9m disso, d\u00e1 mais \u003Cstrong\u003Etranspar\u00eancia\u003C/strong\u003E aos \u00edndices de criminalidade para toda a sociedade, pois os relat\u00f3rios com todas as\u00a0 informa\u00e7\u00f5es dispon\u00edveis no SINESP podem ser lidos e consultados pela popula\u00e7\u00e3o via \u003Cem\u003Einternet\u003C/em\u003E.\u003C/p\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\r\n\u003Ch3\u003ESINESP Cidad\u00e3o\u003C/h3\u003E\r\n\u003Cp\u003EDispon\u00edvel para qualquer pessoa, \u00e9 um aplicativo de consulta r\u00e1pida via \u003Cem\u003Einternet \u003C/em\u003Eque oferece informa\u00e7\u00f5es sobre \u003Cstrong\u003Eve\u00edculos roubados ou furtados, pessoas desaparecidas ou com mandatos de pris\u00e3o expedidos contra elas.\u003C/strong\u003E\u003C/p\u003E\r\n\u003Cp\u003EA ferramenta pode ser acessada, \u003Cstrong\u003Egratuitamente\u003C/strong\u003E, pelo endere\u00e7o \u003Cstrong\u003Ewww.sinesp.gov.br\u003C/strong\u003E e nas lojas de aplicativos, tanto para IOS, Android e Windows Phone.\u003C/p\u003E\r\n\u003Cp\u003EEm breve, um novo m\u00f3dulo ser\u00e1 disponibilizado no aplicativo: a localiza\u00e7\u00e3o de unidades policiais pr\u00f3ximas do usu\u00e1rio.\u003C/p\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6\"\u003E\u003Cimg class=\"img-responsive center-block\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/sinesp/imagens/tecnologia-sinesp-imagem2.jpg\" alt=\"Foto mostra m\u00e3o de uma pessoa com celular na m\u00e3o acessando o aplicativo. Ao fundo carros passando na rua. \" width=\"326\" height=\"327\" /\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"container\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12 col-sm-12\"\u003E\u003Cimg class=\"img-responsive center-block\" src=\"http://dialoga.gov.br/dialoga/dialoga-brasil/sinesp/imagens/tecnologia-sinesp-imagem3.jpg\" alt=\"Tr\u00eas pictogramas um ao lado do outro. O primeiro uma nuvem com uma seta para baixo com o texto: mais de 4,5 milh\u00f5es de downloads. O segundo uma lupa e o texto: mais de 150 milh\u00f5es de consulta. E o terceiro um carro com o texto: mais de 100 mil ve\u00edculos recuperados. \" width=\"773\" height=\"176\" /\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E"}
  731 + });
  732 + data.articles.push({
  733 + id: 121521,
  734 + "article":{"id":121521,"body":"\u003Cdiv class=\"col-xs-12\"\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch2\u003EVale-Cultura\u003Csmall\u003EMais acesso \u00e0 cultura para trabalhadores e trabalhadoras\u003C/small\u003E\u003C/h2\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch3\u003ELivros, shows e espet\u00e1culos para todos.\u003C/h3\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\u003Cimg class=\"img-responsive\" src=\"http://gestao.dialoga.gov.br/dialoga/dialoga-brasil/vale-cultura/imagens/vale-cultura1.jpg\" alt=\"\" /\u003E\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\r\n\u003Cp\u003EO Vale-Cultura incentiva as empresas a oferecer aos seus funcion\u00e1rios acesso a livros, revistas, ingressos para cinemas, teatros, shows, instrumentos musicais e cursos de arte e cultura.\u003C/p\u003E\r\n\u003Cp\u003EO benef\u00edcio \u00e9 garantido por meio de um cart\u00e3o magn\u00e9tico pr\u00e9-pago, v\u00e1lido em todo os pa\u00eds. Mensalmente, esse cart\u00e3o recebe cr\u00e9dito de R$ 50, que pode ser acumulado para despesas maiores.\u003C/p\u003E\r\n\u003Cp\u003EA ades\u00e3o das empresas \u00e9 facultativa e os custos s\u00e3o livres de encargos sociais e trabalhistas. Aquelas que t\u00eam lucro real podem deduzir at\u00e9 1% do Imposto de Renda devido.\u003C/p\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cbr /\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\r\n\u003Cblockquote\u003E\r\n\u003Cp class=\"text-center\"\u003EEm pouco mais de um ano, o Vale-Cultura j\u00e1 mobiliza mais de R$140 milh\u00f5es e beneficia cerca de 420 mil trabalhadores e trabalhadoras.\u003C/p\u003E\r\n\u003C/blockquote\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\r\n\u003Cdiv class=\"embed-responsive embed-responsive-16by9\"\u003E\u003Ciframe src=\"https://www.youtube.com/embed/KKmZh5T46g8?rel=0\" frameborder=\"0\" width=\"560\" height=\"315\"\u003E\u003C/iframe\u003E\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-12\"\u003E\r\n\u003Ch3\u003ECompromissos\u003C/h3\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003Cdiv class=\"row\"\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\u003Cimg class=\"img-responsive\" src=\"http://gestao.dialoga.gov.br/dialoga/dialoga-brasil/vale-cultura/imagens/vale-cultura3.jpg\" alt=\"\" /\u003E\u003C/div\u003E\r\n\u003Cdiv class=\"col-md-6 col-sm-6 vcenter\"\u003E\r\n\u003Cul class=\"list-unstyled\"\u003E\r\n\u003Cli class=\"bullet\"\u003E\u003Cstrong\u003EAmpliar a ades\u00e3o de empresas e trabalhadores\u003C/strong\u003E\u003C/li\u003E\r\n\u003Cli class=\"bullet\"\u003E\u003Cstrong\u003EAmpliar a rede de estabelecimentos que recebem o Vale-Cultura.\u003C/strong\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E\r\n\u003C/div\u003E"}
  735 + });
  736 +
  737 + return data;
  738 +};
... ...
e2e/pages/inicio.po.js 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +module.exports = (function() {
  2 + 'use strict';
  3 +
  4 + var PageObject = function() {
  5 + this.video = element(by.css('.video-player'));
  6 +
  7 + this.agenda = element(by.css('.event-list'));
  8 + };
  9 +
  10 + return (new PageObject());
  11 +})();
... ...
e2e/pages/inicio.spec.js
... ... @@ -3,8 +3,7 @@
3 3 'use strict';
4 4  
5 5 describe('The index page', function () {
6   - var page = browser.get('/');
7   -
  6 + var page = require('./inicio.po.js');
8 7 // beforeEach(function () {
9 8 // browser.get('/');
10 9 // });
... ... @@ -14,27 +13,59 @@
14 13 });
15 14  
16 15 describe('Component: Main Video', function(){
17   - it('should have a alt text', function() {});
18   - it('should have a thumb background image (for async)', function() {});
19   - it('should have a button play trigger', function() {});
20   - it('should be accessible', function() {});
  16 + it('should have a thumb background image (for async)', function() {
  17 + expect(page.video.element(by.css('.video-thumbnail'))).toBeDefined();
  18 + expect(page.video.element(by.css('.video-thumbnail')).getCssValue('background-image')).toContain('youtube-background.png');
  19 + expect(page.video.element(by.css('.video-thumbnail')).getAttribute('aria-hidden')).toBe('true');
  20 + });
  21 +
  22 + it('should have a button play trigger', function() {
  23 + expect(page.video.element(by.css('.video-play-button'))).toBeDefined();
  24 + expect(page.video.element(by.css('.video-play-button')).getAttribute('aria-label')).toBeDefined();
  25 + });
21 26 });
22 27  
23 28 describe('Component: Agenda', function(){
24   - it('should have a title', function() {});
25   - it('should have a icon', function() {});
26   - it('should show the number of scheduled chats', function() {});
27   - it('should have a open trigger', function() {});
28   - it('should be accessible', function() {});
  29 + it('should have a tab-trigger', function() {
  30 + expect(page.agenda.element(by.css('.event-tab--trigger'))).toBeDefined();
  31 + expect(page.agenda.element(by.css('.event-tab--title'))).toBeDefined();
  32 + expect(page.agenda.element(by.css('.event-tab--icon'))).toBeDefined();
  33 + expect(page.agenda.element(by.css('.event-tab--icon')).element(by.css('.glyphicon'))).toBeDefined();
  34 + expect(page.agenda.element(by.css('.event-tab--icon')).element(by.css('.glyphicon')).getAttribute('aria-hidden')).toBe('true');
  35 + expect(page.agenda.element(by.css('.event-tab--button'))).toBeDefined();
  36 + expect(page.agenda.element(by.css('.event-tab--total-scheduled'))).toBeDefined();
  37 + expect(page.agenda.element(by.css('.event-tab--total-scheduled'))).toMatch(/(\d)*/);
  38 + });
29 39  
30 40 describe('Component: Agenda / Open-panel', function(){
31   - it('should have a close trigger', function() {});
32   - it('should have the date/time of scheduled chat', function() {});
33   - it('should have the title of scheduled chat', function() {});
34   - it('should have a subscribe button to scheduled chat', function() {});
35   - it('should show the number of subscribers on each item', function() {});
36   - it('should show 5 itens at most', function() {});
37   - it('should be accessible', function() {});
  41 + it('should have a header', function() {
  42 + // the 2 lines below need to open panel and make elements visibles
  43 + expect(page.agenda.element(by.model('eventListCtrl.isListVisible'))).toBeDefined();
  44 + page.agenda.element(by.css('.event-tab--trigger')).click();
  45 +
  46 + expect(page.agenda.element(by.css('.event-list--title'))).toBeDefined();
  47 + expect(page.agenda.element(by.css('.event-list--title')).getText()).toEqual('Bate-papo com ministr@s');
  48 + expect(page.agenda.element(by.css('.event-list--icon'))).toBeDefined();
  49 + expect(page.agenda.element(by.css('.event-list--icon')).element(by.css('.glyphicon'))).toBeDefined();
  50 + expect(page.agenda.element(by.css('.event-list--icon')).element(by.css('.glyphicon')).getAttribute('aria-hidden')).toBe('true');
  51 + expect(page.agenda.element(by.css('.event-list--minimize'))).toBeDefined();
  52 + expect(page.agenda.element(by.css('.event-list--minimize')).element(by.css('.glyphicon'))).toBeDefined();
  53 + expect(page.agenda.element(by.css('.event-list--minimize')).element(by.css('.glyphicon')).getAttribute('aria-hidden')).toBe('true');
  54 + });
  55 +
  56 + it('should have a table with content', function() {
  57 + // date/time
  58 + expect(page.agenda.element(by.css('.event-list--minimize')).element(by.css('.glyphicon')).getAttribute('aria-hidden')).toBe('true');
  59 + // title
  60 + // subscribe button
  61 + // total of subscribers
  62 + // show only 5 itens
  63 + });
  64 + // it('should have the title of scheduled chat', function() {});
  65 + // it('should have a subscribe button to scheduled chat', function() {});
  66 + // it('should show the number of subscribers on each item', function() {});
  67 + // it('should show 5 itens at most', function() {});
  68 + // it('should be accessible', function() {});
38 69 });
39 70  
40 71 describe('Component: Agenda / with Hangout', function(){
... ...
gulp/server.js
... ... @@ -8,6 +8,7 @@ var browserSync = require(&#39;browser-sync&#39;);
8 8 var browserSyncSpa = require('browser-sync-spa');
9 9  
10 10 var util = require('util');
  11 +var gutil = require('gulp-util');
11 12  
12 13 var proxyMiddleware = require('http-proxy-middleware');
13 14  
... ... @@ -33,7 +34,25 @@ function browserSyncInit(baseDir, browser) {
33 34 *
34 35 * For more details and option, https://github.com/chimurai/http-proxy-middleware/blob/v0.0.5/README.md
35 36 */
36   - // server.middleware = proxyMiddleware('/users', {target: 'http://jsonplaceholder.typicode.com', proxyHost: 'jsonplaceholder.typicode.com'});
  37 + if(gutil.env.target) {
  38 + server.middleware = proxyMiddleware('/api', {target: gutil.env.target});
  39 + } else {
  40 + // no target! Point to localhost
  41 + server.middleware = proxyMiddleware('/api', {
  42 + target: 'http://0.0.0.0:9000/',
  43 + pathRewrite: {
  44 + // rewrite paths
  45 + '^/api/v1/articles' : '/articles'
  46 + },
  47 + proxyTable: {
  48 + // when request.headers.host == 'dev.localhost:3000',
  49 + // override target 'http://www.example.org' to 'http://localhost:8000'
  50 + // 'dev.localhost:3000' : 'http://localhost:8000'
  51 + 'hom.dialoga.gov.br' : 'http://localhost:9000',
  52 + 'login.dialoga.gov.br' : 'http://localhost:9000'
  53 + }
  54 + });
  55 + }
37 56  
38 57 browserSync.instance = browserSync.init({
39 58 startPath: '/',
... ...
gulp/styles.js
... ... @@ -39,7 +39,10 @@ gulp.task(&#39;styles&#39;, function () {
39 39 .pipe(wiredep(_.extend({}, conf.wiredep)))
40 40 .pipe($.sourcemaps.init())
41 41 .pipe($.sass(sassOptions)).on('error', conf.errorHandler('Sass'))
42   - .pipe($.autoprefixer()).on('error', conf.errorHandler('Autoprefixer'))
  42 + .pipe($.autoprefixer({
  43 + browsers: ['last 3 versions', 'ie >= 9', 'ff > 20', 'Chrome > 30', 'Opera > 25', 'Safari > 6', 'iOS > 6'],
  44 + cascade: false
  45 + })).on('error', conf.errorHandler('Autoprefixer'))
43 46 .pipe($.sourcemaps.write())
44 47 .pipe(gulp.dest(path.join(conf.paths.tmp, '/serve/app/')))
45 48 .pipe(browserSync.reload({ stream: true }));
... ...
package.json
... ... @@ -6,50 +6,50 @@
6 6 "test": "gulp test"
7 7 },
8 8 "devDependencies": {
  9 + "browser-sync": "~2.7.12",
  10 + "browser-sync-spa": "~1.0.2",
  11 + "chalk": "~1.0.0",
  12 + "concat-stream": "~1.5.0",
  13 + "del": "~1.2.0",
9 14 "gulp": "~3.9.0",
10   - "gulp-autoprefixer": "~2.3.1",
  15 + "gulp-angular-filesort": "~1.1.1",
11 16 "gulp-angular-templatecache": "~1.6.0",
12   - "del": "~1.2.0",
13   - "lodash": "~3.9.3",
  17 + "gulp-autoprefixer": "~2.3.1",
14 18 "gulp-csso": "~1.0.0",
15 19 "gulp-filter": "~2.0.2",
16 20 "gulp-flatten": "~0.0.4",
  21 + "gulp-if": "^1.2.5",
  22 + "gulp-inject": "~1.3.1",
17 23 "gulp-jshint": "~1.11.0",
18 24 "gulp-load-plugins": "~0.10.0",
19   - "gulp-size": "~1.2.1",
20   - "gulp-uglify": "~1.2.0",
21   - "gulp-useref": "~1.2.0",
22   - "gulp-util": "~3.0.5",
  25 + "gulp-minify-html": "~1.0.3",
23 26 "gulp-ng-annotate": "~1.0.0",
24   - "gulp-replace": "~0.5.3",
  27 + "gulp-protractor": "~1.0.0",
25 28 "gulp-rename": "~1.2.2",
  29 + "gulp-replace": "~0.5.3",
26 30 "gulp-rev": "~5.0.0",
27 31 "gulp-rev-replace": "~0.4.2",
28   - "gulp-minify-html": "~1.0.3",
29   - "gulp-inject": "~1.3.1",
30   - "gulp-protractor": "~1.0.0",
31   - "gulp-sourcemaps": "~1.5.2",
32 32 "gulp-sass": "~2.0.1",
33   - "gulp-angular-filesort": "~1.1.1",
34   - "main-bower-files": "~2.8.0",
35   - "merge-stream": "^1.0.0",
  33 + "gulp-size": "~1.2.1",
  34 + "gulp-sourcemaps": "~1.5.2",
  35 + "gulp-uglify": "~1.2.0",
  36 + "gulp-useref": "~1.2.0",
  37 + "gulp-util": "~3.0.5",
  38 + "http-proxy-middleware": "^0.7.0",
36 39 "jshint-stylish": "~2.0.0",
37   - "wiredep": "~2.2.2",
38 40 "karma": "~0.12.36",
39   - "karma-jasmine": "~0.3.5",
40   - "karma-phantomjs-launcher": "~0.2.0",
41 41 "karma-angular-filesort": "~0.1.0",
  42 + "karma-jasmine": "~0.3.5",
42 43 "karma-ng-html2js-preprocessor": "~0.1.2",
43   - "concat-stream": "~1.5.0",
  44 + "karma-phantomjs-launcher": "~0.2.0",
  45 + "lodash": "~3.10.1",
  46 + "main-bower-files": "~2.8.0",
  47 + "merge-stream": "^1.0.0",
44 48 "require-dir": "~0.3.0",
45   - "browser-sync": "~2.7.12",
46   - "browser-sync-spa": "~1.0.2",
47   - "http-proxy-middleware": "~0.0.5",
48   - "chalk": "~1.0.0",
  49 + "sprity": "^1.0.7",
49 50 "uglify-save-license": "~0.4.1",
50   - "wrench": "~1.5.8",
51   - "gulp-if": "^1.2.5",
52   - "sprity": "^1.0.7"
  51 + "wiredep": "~2.2.2",
  52 + "wrench": "~1.5.8"
53 53 },
54 54 "engines": {
55 55 "node": ">=0.10.0"
... ...
protractor.conf.js
... ... @@ -30,12 +30,12 @@
30 30 browser.addMockModule('disableNgAnimate', disableNgAnimate);
31 31  
32 32 // Disable debug info
33   - var disableDebugInfo = function() {
34   - angular.module('disableDebugInfo', []).run(['$compileProvider', function($compileProvider) {
35   - $compileProvider.debugInfoEnabled(false);
36   - }]);
37   - };
38   - browser.addMockModule('disableDebugInfo', disableDebugInfo);
  33 + // var disableDebugInfo = function() {
  34 + // angular.module('disableDebugInfo', []).run(['$compileProvider', function($compileProvider) {
  35 + // $compileProvider.debugInfoEnabled(false);
  36 + // }]);
  37 + // };
  38 + // browser.addMockModule('disableDebugInfo', disableDebugInfo);
39 39  
40 40 // Store the name of the browser that's currently being used.
41 41 browser.getCapabilities().then(function(caps) {
... ... @@ -52,10 +52,10 @@
52 52 // The timeout in milliseconds for each script run on the browser. This should
53 53 // be longer than the maximum time your application needs to stabilize between
54 54 // tasks.
55   - allScriptsTimeout: 11000,
  55 + allScriptsTimeout: 15000,
56 56  
57 57 // How long to wait for a page to load.
58   - getPageTimeout: 10000,
  58 + getPageTimeout: 12000,
59 59  
60 60 // Spec patterns are relative to the current working directly when
61 61 // protractor is called.
... ...
src/app/components/article-preview/article-preview.scss
... ... @@ -87,5 +87,25 @@
87 87 }
88 88 }
89 89  
  90 + .row-height {
  91 + border-spacing: 20px;
  92 + }
  93 +
  94 + .col-height {
90 95  
  96 + border: 1px solid #000;
  97 + border-radius: 3px;
  98 +
  99 + @each $category, $color in $categories {
  100 + .#{$category} & {
  101 + border-color: $color;
  102 + }
  103 + }
  104 +
  105 + @media (max-width: $screen-sm){
  106 + display: block;
  107 + border: none;
  108 + }
  109 +
  110 + }
91 111 }
... ...
src/app/components/event-list/event-list.directive.js 0 → 100644
... ... @@ -0,0 +1,53 @@
  1 +(function() {
  2 + 'use strict';
  3 +
  4 + angular
  5 + .module('dialoga')
  6 + .directive('eventList', eventList);
  7 +
  8 + /** @ngInject */
  9 + function eventList() {
  10 + /** @ngInject */
  11 + function EventListController($scope, $rootScope, $state, $log) {
  12 + $log.debug('EventListController');
  13 +
  14 + var vm = this;
  15 +
  16 + vm.$scope = $scope;
  17 + vm.$rootScope = $rootScope;
  18 + vm.$state = $state;
  19 + vm.$log = $log;
  20 +
  21 + vm.init();
  22 + }
  23 +
  24 + EventListController.prototype.init = function () {
  25 + var vm = this;
  26 +
  27 + vm.eventList = [];
  28 + vm.isListVisible = false;
  29 + };
  30 +
  31 + EventListController.prototype.toggleView = function () {
  32 + var vm = this;
  33 + vm.isListVisible = !vm.isListVisible;
  34 + };
  35 +
  36 + EventListController.prototype.subscribe = function (data) {
  37 + var vm = this;
  38 +
  39 + vm.$log.debug('data', data);
  40 + };
  41 +
  42 + var directive = {
  43 + restrict: 'E',
  44 + templateUrl: 'app/components/event-list/event-list.html',
  45 + controller: EventListController,
  46 + controllerAs: 'eventListCtrl',
  47 + bindToController: true
  48 + };
  49 +
  50 + return directive;
  51 +
  52 + }
  53 +})();
... ...
src/app/components/event-list/event-list.html 0 → 100644
... ... @@ -0,0 +1,109 @@
  1 +<div class="event-list">
  2 + <div class="event-tab--trigger" ng-show="!eventListCtrl.isListVisible" ng-click="eventListCtrl.toggleView()">
  3 + <div class="event-tab--header">
  4 + <div class="event-tab--icon">
  5 + <span class="glyphicon glyphicon-calendar" aria-hidden="true"></span>
  6 + </div>
  7 + <div class="event-tab--title">Bate-Papo com ministr@s</div>
  8 + </div>
  9 + <button class="btn btn-link event-tab--button">
  10 + <span class="event-tab--total-scheduled">18</span>
  11 + <span>bate-papos agendados</span>
  12 + <span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span>
  13 + </button>
  14 + </div>
  15 +
  16 + <div class="event-list--panel ng-hide" ng-show="eventListCtrl.isListVisible">
  17 + <div class="event-list--header">
  18 + <div class="event-list--icon">
  19 + <div class="glyphicon glyphicon-calendar" aria-hidden="true"></div>
  20 + </div>
  21 + <h2 class="event-list--title">Bate-papo com ministr@s</h2>
  22 + <div class="event-list--minimize">
  23 + <button type="button" class="btn btn-link" ng-click="eventListCtrl.toggleView()">
  24 + <span>Minimizar</span>
  25 + <span class="glyphicon glyphicon-triangle-top" aria-hidden="true"></span>
  26 + </button>
  27 + </div>
  28 + </div>
  29 + <div class="event-list--table-wrapper">
  30 + <div class="table-responsive">
  31 + <table class="table event-list--table">
  32 + <!-- <thead></thead> -->
  33 + <tbody>
  34 + <tr>
  35 + <td>
  36 + <span class="date">dd/mm/aaaa</span>
  37 + <span class="separator">-</span>
  38 + <span class="time">HH:mm</span>
  39 + <span class="separator">-</span>
  40 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  41 + <button type="button" class="btn" ng-click="eventListCtrl.subscribe('EVENT_ID')">
  42 + Inscreva-se
  43 + <span class="sr-only">no bate-papo com (ministro) no dia (date) as (hh:mm) horas</span>
  44 + </button>
  45 + <span class="subscribers">123 inscritos</span>
  46 + </td>
  47 + </tr>
  48 + <tr>
  49 + <td>
  50 + <span class="date">dd/mm/aaaa</span>
  51 + <span class="separator">-</span>
  52 + <span class="time">HH:mm</span>
  53 + <span class="separator">-</span>
  54 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  55 + <button type="button" class="btn">Inscreva-se</button>
  56 + <span class="subscribers">123 inscritos</span>
  57 + </td>
  58 + </tr>
  59 + <tr>
  60 + <td>
  61 + <span class="date">dd/mm/aaaa</span>
  62 + <span class="separator">-</span>
  63 + <span class="time">HH:mm</span>
  64 + <span class="separator">-</span>
  65 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  66 + <button type="button" class="btn">Inscreva-se</button>
  67 + <span class="subscribers">123 inscritos</span>
  68 + </td>
  69 + </tr>
  70 + <tr>
  71 + <td>
  72 + <span class="date">dd/mm/aaaa</span>
  73 + <span class="separator">-</span>
  74 + <span class="time">HH:mm</span>
  75 + <span class="separator">-</span>
  76 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  77 + <button type="button" class="btn">Inscreva-se</button>
  78 + <span class="subscribers">123 inscritos</span>
  79 + </td>
  80 + </tr>
  81 + <tr>
  82 + <td>
  83 + <span class="date">dd/mm/aaaa</span>
  84 + <span class="separator">-</span>
  85 + <span class="time">HH:mm</span>
  86 + <span class="separator">-</span>
  87 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  88 + <button type="button" class="btn">Inscreva-se</button>
  89 + <span class="subscribers">123 inscritos</span>
  90 + </td>
  91 + </tr>
  92 + <tr>
  93 + <td>
  94 + <span class="date">dd/mm/aaaa</span>
  95 + <span class="separator">-</span>
  96 + <span class="time">HH:mm</span>
  97 + <span class="separator">-</span>
  98 + <span class="description">Mais médicos, Segurança Nacional, SAMU</span>
  99 + <button type="button" class="btn">Inscreva-se</button>
  100 + <span class="subscribers">123 inscritos</span>
  101 + </td>
  102 + </tr>
  103 + </tbody>
  104 + <!-- <tfooter></tfooter> -->
  105 + </table>
  106 + </div>
  107 + </div>
  108 + </div>
  109 +</div>
... ...
src/app/components/event-list/event-list.scss 0 → 100644
... ... @@ -0,0 +1,90 @@
  1 +.event-list {
  2 + position: relative;
  3 + background-color: #eeeeee;
  4 +
  5 + .contraste & {
  6 + background-color: #262626;
  7 + }
  8 +
  9 + .event-list--panel {
  10 + height: 310px;
  11 + border: 1px solid #333333;
  12 + padding: 20px;
  13 + margin: 20px 0;
  14 + line-height: 20px;
  15 + transition: .3s linear all;
  16 +
  17 + &.ng-hide {
  18 + height: 0px;
  19 + line-height: 0px;
  20 + }
  21 +
  22 + .event-list--header {
  23 + border-bottom: 1px solid #333333;
  24 + }
  25 +
  26 + .event-list--icon {
  27 + font-size: 25px;
  28 + display: inline-block;
  29 + }
  30 +
  31 + .event-list--title {
  32 + margin: 0 10px;
  33 + display: inline-block;
  34 + }
  35 +
  36 + .event-list--minimize {
  37 + display: inline-block;
  38 + float: right;
  39 + width: 100px;
  40 + }
  41 + }
  42 +
  43 + .event-tab--trigger {
  44 + $event-tab-height: 130px;
  45 + width: 150px;
  46 + height: $event-tab-height;
  47 + position: absolute;
  48 + right: 0;
  49 + top: $event-tab-height * (-1);
  50 + padding: 5px;
  51 + background-color: #eeeeee;
  52 + border: 1px solid #333333;
  53 + text-align: center;
  54 + line-height: 20px;
  55 + cursor: pointer;
  56 + transition: .3s linear all;
  57 + overflow: hidden;
  58 + z-index: 100;
  59 +
  60 + &.ng-hide {
  61 + height: 0px;
  62 + line-height: 0px;
  63 + top: -1px;
  64 + }
  65 +
  66 + .contraste & {
  67 + background-color: #262626;
  68 + }
  69 + }
  70 +
  71 + .table-responsive {
  72 + height: 250px;
  73 + overflow-y: scroll;
  74 + }
  75 +
  76 + .event-tab--icon {
  77 + font-size: 25px;
  78 + }
  79 + .event-tab--title {
  80 + font-weight: bold;
  81 + }
  82 +
  83 + .event-tab--button {
  84 + font-size: 12px;
  85 + margin: 10px 0 0 0;
  86 + padding: 0;
  87 + width: 100%;
  88 + white-space: normal;
  89 + }
  90 +}
... ...
src/app/index.constants.js
... ... @@ -4,13 +4,15 @@
4 4  
5 5 angular
6 6 .module('dialoga')
7   - .constant('api', {
  7 + .constant('API', {
8 8 token: null,
  9 + hostDev: '',
9 10 hostHom: 'http://hom.dialoga.gov.br',
10 11 hostProd: 'http://login.dialoga.gov.br',
11   - // host: 'http://www.participa.br',
12 12 articleId: {
13   - home: 103358
  13 + home: '103358',
  14 + about: '108073',
  15 + terms: '107880'
14 16 }
15 17 })
16 18 .constant('AUTH_EVENTS', {
... ...
src/app/index.run.js
... ... @@ -105,8 +105,9 @@
105 105  
106 106 /** @ngInject */
107 107 function runPath($rootScope, API, $window, $log) {
108   - var isProduction = (/^http:\/\/dialoga\.gov\.br\//.test($window.location.href));
109   - $rootScope.basePath = isProduction ? API.hostProd : API.hostHom;
  108 + var isProd = (/^http:\/\/dialoga\.gov\.br\//.test($window.location.href));
  109 + var isHom = (/^http:\/\/hom.dialoga\.gov\.br\//.test($window.location.href));
  110 + $rootScope.basePath = isProd ? API.hostProd : (isHom ? API.hostHom : API.hostDev);
110 111  
111 112 $log.debug('[RUN] Path end.');
112 113 }
... ...
src/app/layout.scss
... ... @@ -3,7 +3,6 @@
3 3 table-layout: fixed;
4 4 height: 100%;
5 5 width: 100%;
6   - border-spacing: 20px;
7 6  
8 7 @media (max-width: $screen-sm) {
9 8 display: block;
... ... @@ -23,20 +22,10 @@
23 22 float: none;
24 23 height: 100%;
25 24 vertical-align: top;
  25 +}
26 26  
27   - border: 1px solid #000;
28   - border-radius: 3px;
29   -
30   - @each $category, $color in $categories {
31   - .#{$category} & {
32   - border-color: $color;
33   - }
34   - }
35   -
36   - @media (max-width: $screen-sm){
37   - display: block;
38   - border: none;
39   - }
  27 +.col-height--align-bottom {
  28 + vertical-align: bottom;
40 29 }
41 30  
42 31 .inside {
... ...
src/app/pages/inicio/inicio.html
1   -<section class="container video-wrapper" role="main">
2   - <div class="video-player js-youtube">
3   - <div class="embed-responsive embed-responsive-16by9">
4   - <div class="js-iframe" ng-show="pageInicio.content" ng-bind-html="pageInicio.content"></div>
5   - <div class="video-background" ng-click="pageInicio.showVideo()">
6   - <div class="video-thumbnail" style="background-image:url(/assets/images/youtube-background.png)"></div>
7   - <button class="video-play-button" aria-live="assertive" aria-label="Assistir o vídeo tutorial Dialoga Brasil">
8   - <svg height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-play-button-bg" d="m .66,37.62 c 0,0 .66,4.70 2.70,6.77 2.58,2.71 5.98,2.63 7.49,2.91 5.43,.52 23.10,.68 23.12,.68 .00,-1.3e-5 14.29,-0.02 23.81,-0.71 1.32,-0.15 4.22,-0.17 6.81,-2.89 2.03,-2.07 2.70,-6.77 2.70,-6.77 0,0 .67,-5.52 .67,-11.04 l 0,-5.17 c 0,-5.52 -0.67,-11.04 -0.67,-11.04 0,0 -0.66,-4.70 -2.70,-6.77 C 62.03,.86 59.13,.84 57.80,.69 48.28,0 34.00,0 34.00,0 33.97,0 19.69,0 10.18,.69 8.85,.84 5.95,.86 3.36,3.58 1.32,5.65 .66,10.35 .66,10.35 c 0,0 -0.55,4.50 -0.66,9.45 l 0,8.36 c .10,4.94 .66,9.45 .66,9.45 z" fill="#1f1f1e" fill-opacity="0.9"></path><path d="m 26.96,13.67 18.37,9.62 -18.37,9.55 -0.00,-19.17 z" fill="#fff"></path><path d="M 45.02,23.46 45.32,23.28 26.96,13.67 43.32,24.34 45.02,23.46 z" fill="#ccc"></path></svg>
9   - </button>
  1 +<section class="container" role="main">
  2 + <div class="row">
  3 + <div class="col-sm-10 col-sm-offset-1">
  4 + <div class="video-wrapper">
  5 + <div class="video-player js-youtube">
  6 + <div class="embed-responsive embed-responsive-16by9">
  7 + <div class="js-iframe" ng-show="pageInicio.content" ng-bind-html="pageInicio.content"></div>
  8 + <div class="video-background" ng-click="pageInicio.showVideo()">
  9 + <div class="video-thumbnail" aria-hidden="true" style="background-image:url(/assets/images/youtube-background.png)"></div>
  10 + <button class="video-play-button" aria-live="assertive" aria-label="Assistir o vídeo tutorial Dialoga Brasil">
  11 + <svg height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-play-button-bg" d="m .66,37.62 c 0,0 .66,4.70 2.70,6.77 2.58,2.71 5.98,2.63 7.49,2.91 5.43,.52 23.10,.68 23.12,.68 .00,-1.3e-5 14.29,-0.02 23.81,-0.71 1.32,-0.15 4.22,-0.17 6.81,-2.89 2.03,-2.07 2.70,-6.77 2.70,-6.77 0,0 .67,-5.52 .67,-11.04 l 0,-5.17 c 0,-5.52 -0.67,-11.04 -0.67,-11.04 0,0 -0.66,-4.70 -2.70,-6.77 C 62.03,.86 59.13,.84 57.80,.69 48.28,0 34.00,0 34.00,0 33.97,0 19.69,0 10.18,.69 8.85,.84 5.95,.86 3.36,3.58 1.32,5.65 .66,10.35 .66,10.35 c 0,0 -0.55,4.50 -0.66,9.45 l 0,8.36 c .10,4.94 .66,9.45 .66,9.45 z" fill="#1f1f1e" fill-opacity="0.9"></path><path d="m 26.96,13.67 18.37,9.62 -18.37,9.55 -0.00,-19.17 z" fill="#fff"></path><path d="M 45.02,23.46 45.32,23.28 26.96,13.67 43.32,24.34 45.02,23.46 z" fill="#ccc"></path></svg>
  12 + </button>
  13 + </div>
  14 + </div>
  15 + </div>
10 16 </div>
11 17 </div>
12 18 </div>
  19 + <!-- <div class="js-event-wrapper hide" ng-show="inicio.eventListIsVisible"> -->
  20 + <div class="js-event-wrapper">
  21 + <event-list></event-list>
  22 + </div>
13 23 </section>
14 24  
15 25 <section class="info-section" ng-if="pageInicio.loading || pageInicio.error">
... ...
src/app/pages/inicio/inicio.scss
... ... @@ -12,7 +12,7 @@
12 12 }
13 13  
14 14 .video-wrapper {
15   - margin-bottom: 30px;
  15 + // margin-bottom: 30px;
16 16 }
17 17  
18 18 .video-player {
... ...