@Modal = (-> self = {} win = $(window) #mistérios da vida c.483: Pq a self.$window diz ter 100% da janela via css mas na verdade ocupa menos de 100% da tela? #isso impede que o retorno da janela ao normal quando não mais necessária a classe fluid. (comportamento dançante) focus = -> if self.$modal input = self.$modal.find "input[type='text']" input.get(0).focus() if input.length keydown = (e) -> k = e.which if k is 27 e.preventDefault() e.stopImmediatePropagation() close() check = -> if self.$modal and self.$modal.length if win.height() < self.$window.outerHeight() + (win.height() * 0.10) unless self.$modal.hasClass("fluid") self.$modal.addClass("fluid") #else #if self.$modal.hasClass("fluid") #self.$modal.removeClass("fluid") open = (template, params) -> params = params or {} RocketChat.animeBack self.$modal, -> focus() self.opened = 1 startListening() if params.listening setContent template, params.data if template? self.$modal.addClass "opened" self.$modal.removeClass "fluid" setTimeout -> focus() ,200 close = -> self.$modal.addClass "closed" win.unbind("keydown.modal") # acionar no on-complete da animação setTimeout -> self.opened = 0 stopListening() self.$modal.removeClass "opened closed" , 300 setContent = (template, data) -> self.$main.empty() if template if data Blaze.renderWithData template, data, self.$main.get(0) else Blaze.render template, self.$main.get(0) checkFooter() check() checkFooter = -> if self.$footer and self.$footer.length buttons = self.$footer.find "button" buttons.each -> btn = $(@) if btn.html().match /fechar/ig btn.click (e) -> e.preventDefault() close() startListening = -> stopListening() self.interval = setInterval -> check() , 100 stopListening = -> clearInterval self.interval if self.interval init = ($modal, params) -> self.params = params or {} self.opened = 0 self.initialized = 0 self.$modal = if $modal.length then $modal else $(".rocket-modal") if self.$modal.length self.initialized = 0 self.$window = self.$modal.find ".modal" self.$main = self.$modal.find "main" self.$close = self.$modal.find "header > .close" self.$footer = self.$modal.find "footer" self.$close.unbind("click").click close win.unbind("resize.modal").bind "resize.modal", check win.unbind("keydown.modal").bind "keydown.modal", (e) -> keydown(e) init: init open: open close: close focus: focus setContent: setContent )()