Frontend dos Temas
Last updated
Last updated
O Mapas Culturais utiliza o Sass (versão 3.4 em Ruby) como linguagem para escrita dos estilos.
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.sh
dentro do container;
dev-scripts/watch-sass.sh: executa o scripts/watch-active-theme-sass.sh
dentro do container.
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.
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:
MapasCulturais.auth.require
Requer 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
Cria a URL para uma rota dado controller_id
, action_name
e parâmetros para URL, como nos exemplos abaixo:
MapasCulturais.Messages
Exibe mensagens para o usuário (somente nas páginas das entidades):
MapasCulturais.Modal
Componente JS que implementa e inicializa as modais:
MapasCulturais.EditBox
Componente JS que implementa e inicializa as caixinhas de edição:
MapasCulturais.Remove
Componente JS que implementa link para deleção de item (file, metalist e eventOccurrence). Após deleção, remove o item da lista:
MapasCulturais.AjaxUploader
Implementa modal para upload de arquivos via Ajax.
MapasCulturais.Video
Implementa componente de vídeos das páginas das entidades.
MapasCulturais.Search
Implementa 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
Implementa um getter e um setter para manipular cookies pelo JS.
MapasCulturais.Editables
Componente JS que inicializa os X-editables e implementa o salvamento das páginas de edição das entidades.
MapasCulturais.MetalistManager
Componente JS que implementa e inicializa os componentes de metalist (download e vídeos), das páginas de edição das entidades.
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.
<input>
<textarea>
<select>
As opções do select são obtidas do registro do metadado:
datepicker
<edit-box>
<mc-select>
<multiselect>
<editable-multiselect>