Frontend dos Temas
Sass
O Mapas Culturais utiliza o Sass (versão 3.4 em Ruby) como linguagem para escrita dos estilos.
Compilando o Sass
Há dois scripts que auxiliam no desenvolvimento. Um para compilar o CSS. E, o outro para observar os arquivos por modificações e para compilar o CSS sempre que algum arquivo seja alterado.
Ambos os scripts ficam na pasta scripts do repositório. Localizados dentro do container docker, essa pasta se encontra em /var/www/scripts.
Quando dev-scripts/start-dev.sh é utilizado para o desenvolvimento, pode-se utilizar os scripts abaixo para chamar os scripts supracitados:
dev-scripts/compile-sass.sh: executa o
scripts/compile-sass.shdentro do container;dev-scripts/watch-sass.sh: executa o
scripts/watch-active-theme-sass.shdentro do container.
Pastas e arquivos (BaseV1)
Os arquivos do Sass ficam na pasta assets/css/sass do tema BaseV1. Dentro da pasta há a seguinte estrutura:
application: São estilos para componentes utilizados somente em componentes específicos da aplicação;
components: São estilos para componentes que podem ser reutilizados em toda a aplicação;
modules: São estilos básicos aplicados nos seletores dos elementos HTML e em classes auxiliares;
vendor: São estilos que sobrescrevem os estilos dos componentes de terceiros;
globals: São códigos Sass que são utilizados por todos os arquivos Sass, como funções e variáveis;
main.scss: É o arquivo principal compilado, seu papel é somente incluir os arquivos das pastas acima, na ordem correta.
Customizando os estilos no tema filho
Os arquivos Sass dos temas filhos do BaseV1 devem ficar na pasta assets/css/sass. Comumente são utilizados apenas 3 arquivos .scss para a customização, como no exemplo do tema Sobral:
_variables.scss: Utilizado para sobrescrever os valores das variáveis do tema BaseV1. Deve ser incluído antes da inclusão do scss do BaseV1;
_overrides.scss: Utilizado para sobrescrever os estilos definidos pelo BaseV1, ou dos vendor. Deve ser incluído depois da inclusão do scss do BaseV1;
main.scss: Arquivo principal compilado, tem como papel incluir os 2 arquivos acima além do scss do tema BaseV1, como no exemplo abaixo:
JavaScript
MapasCulturais.auth.require
MapasCulturais.auth.requireRequer autenticação antes de executar uma função enviada por parâmetro, abrindo a tela de login caso o usuário não estiver autenticado:
MapasCulturais.createUrl
MapasCulturais.createUrlCria a URL para uma rota dado controller_id, action_name e parâmetros para URL, como nos exemplos abaixo:
MapasCulturais.Messages
MapasCulturais.MessagesExibe mensagens para o usuário (somente nas páginas das entidades):
MapasCulturais.Modal
MapasCulturais.ModalComponente JS que implementa e inicializa as modais:
MapasCulturais.EditBox
MapasCulturais.EditBoxComponente JS que implementa e inicializa as caixinhas de edição:
MapasCulturais.Remove
MapasCulturais.RemoveComponente JS que implementa link para deleção de item (file, metalist e eventOccurrence). Após deleção, remove o item da lista:
MapasCulturais.AjaxUploader
MapasCulturais.AjaxUploaderImplementa modal para upload de arquivos via Ajax.
MapasCulturais.Video
MapasCulturais.VideoImplementa componente de vídeos das páginas das entidades.
MapasCulturais.Search
MapasCulturais.SearchImplementa campo de busca de entidade, utilizado, por exemplo, na seleção do owner agent, do projeto dos eventos, do projeto e espaço pai, etc.
MapasCulturais.cookies
MapasCulturais.cookiesImplementa um getter e um setter para manipular cookies pelo JS.
MapasCulturais.Editables
MapasCulturais.EditablesComponente JS que inicializa os X-editables e implementa o salvamento das páginas de edição das entidades.
MapasCulturais.MetalistManager
MapasCulturais.MetalistManagerComponente JS que implementa e inicializa os componentes de metalist (download e vídeos), das páginas de edição das entidades.
X-editable
O X-editable é uma biblioteca para edit in-place, ou seja, para criar elementos HTML editáveis. É a biblioteca utilizada nas páginas de edição das entidades. E, no Mapas Culturais, é implementada uma abstração em cima da biblioteca para facilitar sua utilização.
Campo de Texto Simples <input>
<input>Campo de Texto <textarea>
<textarea>Campo de Seleção <select>
<select>As opções do select são obtidas do registro do metadado:
Campo de Data datepicker
datepickerAngularJS
Diretiva EditBox <edit-box>
<edit-box>Diretiva mcSelect <mc-select>
<mc-select>Diretiva multiselect <multiselect>
<multiselect>Diretiva editableMultiselect <editable-multiselect>
<editable-multiselect>Last updated
Was this helpful?