Created
December 10, 2013 12:06
-
-
Save ddsilva/7889617 to your computer and use it in GitHub Desktop.
SIPLAN - main.coffee
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define [ | |
'core' | |
'layout/layout' | |
], () -> | |
'use strict' | |
Core = require 'core' | |
Session = require 'core/session' | |
Layout = require 'layout/layout' | |
class App extends Core.SescApplication | |
initialize: -> | |
super | |
@aplicationCustomization() | |
aplicationCustomization: -> | |
Session.serviceUrl = 'api' | |
# Configura o jQuery Validate para não ignorar nenhum tipo de campo nas validações | |
$.validator.setDefaults ignore: '' | |
Core.Feedback.defaults.timeout = 2000 | |
# Personalização da mensagem de erro de data | |
$.extend $.validator.messages, | |
time: 'Insira uma data válida, entre 00:00 e 23:59' | |
# Bloqueio do scrool do body quando houver uma modal aberta | |
if $.fn.livequery | |
$('.modal').livequery -> | |
$(this).on 'show' , -> $('body').css 'overflow-y' : 'hidden' | |
$(this).on 'hide' , -> $('body').css 'overflow-y' : 'auto' | |
# O método routes deve ser extendido para que o usuário descreva todas | |
# as rotas necessárias para descrever os wireframes da aplicação. | |
routes: (match) -> | |
# Programação | |
match '', 'site#index' | |
# Agenda | |
match '!/agenda' , 'agenda#index' | |
match '!/agenda/busca' , 'agenda#busca' | |
# Programação | |
match '!/programacao/create' , 'programacao#create' | |
match '!/programacao/visualizar' , 'programacao#visualizar' | |
match '!/programacao/:id' , 'programacao#edit' | |
# Checklist | |
match '!/checklist', 'checklist#index' | |
# Aprovacao | |
match '!/aprovacao', 'aprovacao#index' | |
# Cadastros | |
match '!/cadastro/itens' , 'itens#index' | |
match '!/cadastro/itens/create' , 'itens#create' | |
match '!/cadastro/itens/:id' , 'itens#edit', | |
contains: {'id': '/.+$'} | |
match '!/cadastro/setor' , 'setor#index' | |
match '!/cadastro/setor/create' , 'setor#create' | |
match '!/cadastro/setor/:id' , 'setor#edit', | |
contains: {'id': '/.+$'} | |
match '!/cadastro/local' , 'local#index' | |
match '!/cadastro/local/create' , 'local#create' | |
match '!/cadastro/local/:id' , 'local#edit', | |
contains: {'id': '/.+$'} | |
match '!/cadastro/projeto' , 'projeto#index' | |
match '!/cadastro/projeto/create' , 'projeto#create' | |
match '!/cadastro/projeto/:id' , 'projeto#edit', | |
contains: {'id': '/.+$'} | |
match '!/cadastro/funcaocontato' , 'funcaocontato#index' | |
match '!/cadastro/funcaocontato/create' , 'funcaocontato#create' | |
match '!/cadastro/funcaocontato/:id' , 'funcaocontato#edit', | |
contains: {'id': '/.+$'} | |
match '!/cadastro/tipoinscricao' , 'tipoinscricao#index' | |
match '!/cadastro/tipoinscricao/create' , 'tipoinscricao#create' | |
match '!/cadastro/tipoinscricao/:id' , 'tipoinscricao#edit', | |
contains: {'id': '/.+$'} | |
return @ | |
# Inicializa o layout principal da aplicação. | |
initLayout: -> | |
# O layout contêm a estrutura base para a aplicação | |
@layout = new Layout() | |
@layout.title = @title | |
getUserOperation: -> | |
return $.ajax | |
url: 'api/usuario/logado' | |
# Nesse método temos a oportunidade de efetuar um mock do usuário e das suas | |
# permissões. | |
# | |
# Esse método é chamado pela aplicação logo após o processo de request/response do serviço | |
# que retorna a 'Promise' com os dados do usuário. | |
# | |
# [Atenção] É importante que esse tipo de informação seja utilizada | |
# apenas durante o desenvolvimento da aplicação. Nunca envie um código | |
# para produção com o código abaixo pois você estará sobreescrevendo as permissões reais do | |
# usuário logado e fatalmente interferindo no funcionamento geral da aplicação. | |
getUserObject: (userData) -> | |
user = new Core.WebUser | |
user.authenticate userData | |
return user | |
# Aqui instanciamos a aplicação e guardamos uma referência da mesma no window.application | |
# Toda aplicação deve ser instânciada com o seu ID e nome. | |
appId = 1 | |
window.application = new App(appId, 'SIPLAN') | |
# Retornamos a classe para utilizar esse arquivo numa fase de teste unitário | |
App |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment