Bom dia professor!
Macartur e eu conseguimos resolver esse problema na terça, estamos só
aguardando o Sergio analisar o pull request (
https://github.com/colab-community/colab/pull/46).Lembro também que também arrumamos a criação de páginas da wiki. O problema
era de novo conflito Colab/Gitlab. Também criamos um pull request e estamos
aguardando análise do Sergio (
https://github.com/colab-community/colab/pull/46).Apenas pra caráter de documentação, aqui vai o passo-a-passo usado pra
descobrir o erro.
Erro: Ao clicar no botão de nova página de wiki no gitlab (
http://beta.softwarepublico.gov.br/gitlab/softwarepublico/noosfero/wikis/home),a tela esmaecia e congelava.
Comportamento esperado: uma caixinha contendo somente um input para colocar
o nome da página deveria aparecer.
Ações:
1. A caixa não aparece por conta da propriedade '.hide{display:
none!important}' do bootstrap carregado pelo Colab. O Gitlab também possui
o bootstrap, com a exceção que os devs removeram o '!important'. Para
curiosidade, não somos os únicos sofrendo com esse problema :) :
https://github.com/twbs/bootstrap/issues/9881 by rougeth
Afim de não alterar o bootstrap carregado pelo Colab, fizemos um fix (o
mesmo do pull request:
https://github.com/colab-community/colab/pull/46)2. A caixa agora aparecia mas não fazia nada ao clicar no botão 'Build'.
Então listamos quais eventos estavam anexados ao botão: $._data(
$(".build-new-wiki")[0], "events" ), e não tinha nenhuma ação pro botão.
3. O Gitlab possui uma série de classes em JS que são carregadas de acordo
com a página atual, e o JS do botão não estava funcionando pq o gitlab não
sabia qual a página atual. Olhando no principal dispatcher do Gitlab (
https://github.com/colab-community/gitlabhq/blob/master/app/assets/javascripts/dispatcher.js.coffee)percebemos que era necessário um atributo da tag body 'data-page' que
contém uma string mostrando qual a página atual do Gitlab.
4. O Colab por padrão usa o diazo para mesclar o HTML das ferramentas
remotas[ou proxy] (no caso o Gitlab), e pro body existia apenas o merge das
classes do elemento(por isso o Gitlab nao conseguia acessar o 'data-page'
de body), então o fix para isso foi adicionar a regra pra mesclar também o
atributo 'data-page' e pronto.
Att,
Charles
On Tue, Oct 7, 2014 at 8:07 PM, Paulo Meirelles
wrote: