Buscar

HeaderItemView.js

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

/* ==========================================================================
 Header View
 @author: Thyago Weber (thyago.weber@gmail.com)
 @date: 04/02/2014
 ========================================================================== */
define(function(require) {
 'use strict';
 var templateDocumentos = '<div class="form-group"><div class="un-input-lg">'
 + '<h2 class="main-title"><%= assunto %></h2></div></div>'
 + '<div class="form-group"><div class="un-input-lg"><%= texto %></div></div>';
 var templateNotificationBar = '<div id="<%=divId%>" class="notification-div" >' 
 + '<a class="notification-container" href="<%=urlNotification%>" id="<%=idBtn%>"><%=icone%>' 
 + '<div class="<%=classe%>" id="<%=id%>"></div>'
 + '<a class="notification-title" href="<%=urlNotification%>" id="<%=idLink%>"><%=nome%></a>'
 + '</a></div>';
 var dataAnterior = new Date();
 var listaPermissoes = [];
 var listaObjPermissoes = null;
 var App = require('app'),
 $ = require('jquery'),
 _ = require('underscore'),
 Backbone = require('backbone'),
 Marionette = require('marionette'),
 LazyLoader = require('libraries/LazyLoader'),
 viewLoader = new LazyLoader('views/'),
 headerTemplate = require('text!templates/partials/header-template.html'),
 headerTemplateRoa = require('text!views/ava/roa/header-template.html'),
 avaCheckLocation = function avaCheckLocation () {
 var location = document.location.hash,
 isAVA = location.indexOf('ava') !== -1,
 isPap = location.indexOf('pap') !== -1,
 isAvaHome = _.isUndefined(location.split('/')[2]) || ((location.split('/')[2]) === ''),
 isRoteiroDeEstudo = location.indexOf('roteiro-de-estudo') !== -1,
 isRoa = location.indexOf('acessoroa') !== -1 || (location.indexOf('roa') !== -1 && (location.indexOf('editar') !== -1 || location.indexOf('novo') !== -1));
 return {
 isAva: isAVA,
 isPap: isPap,
 isAvaHome: isAvaHome,
 isRoteiroDeEstudo: isRoteiroDeEstudo,
 isRoa: isRoa
 };
 };
 var mostrarDocumentos = true;
 return Backbone.Marionette.ItemView.extend({
 initialize: function () {
 var location = avaCheckLocation();
 var self = this;
 
 if (location.isRoa) { 
 self.template = _.template(headerTemplateRoa);
 return;
 }
 // Ouvindo o change dos itens da session.
 this.listenTo(App.session, 'change', function headerListenToSessionUserInfoChange(model) {
 
 listaObjPermissoes = App.session.get('MenuHeader');
 
 _.each(model.changed, function setNewItems(value, key) {
 // Tenta executar um método da view.
 try {
 this['change'+key].call(this, model.get(key));
 }
 catch (e) {
// App.logger.info('Método não existente: change%s', key);
 }
 }, this);
 });
 
 // ouvindo mudanças de rota
 this.listenTo(Backbone.history, 'all', function listenToHistoryChange() {
 this.setViewName();
 });
 this.fillAppContainer();
 //Demo:
 if (window.location.pathname.toLowerCase().indexOf("/demonstracao/") > -1)
 {
 $("#headerItemView").css("background", "#002356");
 }
 },
 template: _.template(headerTemplate),
 setViewName: function setViewName () {
 this.name = App.location().sistema;
 },
 name: null,
 serializeData: function () {
 
 // Dados do Usuário logado
 var name = App.session.get('nome') || '',
 image = App.session.get('imagem') || 'img/icons/default-user.jpg',
 RU = App.session.get('RU'),
 login = App.session.get('login');
 name = App.Helpers.username( name );
 
 return {
 "nome": name,
 "imagem": image,
 "RU": RU,
 'login': login
 };
 
 },
 events: {
 'click #logout': 'logoutClick',
 'click .apps-link': 'showAppOptions',
 //'count .notification-container':'checkAvisosPendentes'
 },
 setlogoutLinkLabel: function () {
 var location = avaCheckLocation(),
 label, title;
 
 if ( location.isAvaHome || location.isPap ) {
 title = 'sair do sistema'; label = 'Sair';
 }
 else {
 title = 'ir para a página inicial'; label = 'Voltar';
 }
 $('#logout')
 .attr('title', title)
 .html(label);
 },
 logout: function () {
 console.info('logout');
 $('.main-enquete').remove();
 $("#atendimento-container").remove();
 $('#main-content').show();
 this.trigger('logout');
 },
 changeimagem: function changeUserImage (src) {
 $('#user-bar').find('.user-img img').attr('src', src);
 },
 changenome: function changeUserName(name) {
 $('#user-bar').find('.user-name').html(App.Helpers.username(name));
 },
 logoutClick: function (e) {
 var location = avaCheckLocation(),
 didFeedback = false,
 self = this,
 feedbackView;
 $.when(
 viewLoader.get('ava/Feedback/FeedbackItemView')
 ).done(function (FeedbackItemView) {
 // Para o AVA, faz logout somente se for a Home.
 if ( location.isAvaHome ) {
 self.logout();
 App.logger.info('logout');
 }
 // Se for alguma página interna do AVA, redirecionar para página inicial do ava.
 else {
 if ( location.isAva ) {
 // Se o usuário não respondeu à pesquisa de feedback,
 // mostrá-la.
 feedbackView = new FeedbackItemView();
 didFeedback = feedbackView.checkFeedback();
 // Se o usuário ainda não respondeu a pesquisa e for o Roteiro de estudo
 if ( !didFeedback && location.isRoteiroDeEstudo ) {
 feedbackView = new FeedbackItemView();
 App.Helpers.showModal({
// 'body': feedbackView.render().$el,
 'onClose': function (dialog) {
 App.redirecter({ 'url': '#/ava' });
 dialog.modal('hide');
 },
 'callback': function renderModalBody(dialog) {
 dialog.find('.modal-body').html(feedbackView.render().$el);
 dialog.find('.modal-footer').hide();
 }
 });
 }
 else {
 App.redirecter({ 'url': '#/ava' });
 }
 }
 // Se For PAP, fazer logout
 else {
 self.logout();
App.logger.info('logout');
 }
 }
 });
 },
 makeContentVisibleToScreenReaders: function makeContentVisibleToScreenReaders () {
 $('#headerItemView').attr('aria-hidden', false);
 },
 onRender: function () {
 
 this.delegateEvents();
 this.makeContentVisibleToScreenReaders();
 
 },
 showAppOptions : function showAppOptions(e){ 
 e.preventDefault();
 e.stopPropagation();
 this.fillAppContainer(); 
 $(".switch-app-container").toggle();
 },
 fillAppContainer : function(){
 $(function(){ 
 $("html").on('click',function(e){
 if($(".switch-app-container").is(":visible"))
 {
 $(".switch-app-container").hide();
 } 
 }); 
 var idsSistema = [];
 var perfis = UNINTER.session.attributes.perfis;
 var avaLi = ' <li><a href="#/ava"><img src="img/ava.png" alt="ava icone"/></a></li> ';
 var papLi = ' <li><a href="#/pap"><img src="img/pap.png" alt="pap icone"/></a></li> ';
 var pap = false;
 var ava = false;
 _.each(perfis, function (profile) {
 idsSistema.push(profile.idSistema);
 });
 if(_.contains(idsSistema, 4)){ 
 if($("#page").hasClass("ava")){
 $(".apps ul").html(papLi); 
 }
 if($("#page").hasClass("pap")){
 $(".apps ul").html(avaLi); 
 }
 ava = true;
 pap = true; 
 
 }
 if(_.contains(idsSistema, 5)){
 if(!ava === true){
 $(".switch-app").hide();
 }
 if(!pap === true){
 $(".switch-app").hide();
 }
 
 }
 if(_.contains(idsSistema, 1)){
 if(!ava === true){
 $(".switch-app").hide();
 }
 if(!pap === true){
 $(".switch-app").hide();
 } 
 }
 if(_.contains(idsSistema, 2)){
 if(!ava === true){
 $(".switch-app").hide();
 }
 if(!pap === true){
 $(".switch-app").hide();
 } 
 }
 });
 },
 timer: null,
 onShow: function () {
 var self = this;
 console.log('onshow');
 var location = avaCheckLocation(); 
 if (location.isRoa)
 return;
 self.getPermissoesMenu();
 
 
 },
 onClose: function onClose() {
 clearInterval(this.timer);
 },
 getPermissoesMenu: function () {
 var self = this;
 if (listaObjPermissoes == null) {
 App.Helpers.ajaxRequest({
 async: true,
 type: 'GET',
 url: App.config.UrlWs('sistema') + 'Menu/43/GetMenusFilhos',
 successCallback: function (r) {
 App.session.set('MenuHeader', r.MenusFilhos);
 listaObjPermissoes = App.session.get('MenuHeader');
 self.fillNotificationBar();
 }, errorCallback: function () {}
 });
 }
 else self.fillNotificationBar();
 },
 fillNotificationBar: function (){
 var nome = null;
 var self = this;
 
 $(listaObjPermissoes).each(function (i, item) {
 nome = item.ExpressaoIdioma.replace(".", "").replace("ç", "c").replace("õ", "o")
 $('#divNotificationBar').append(_.template(templateNotificationBar,
 {
 urlNotification: item.url,
 icone: item.icone,
 divId: "div" + nome,
 id: "idTotal" + nome,
 idLink: "idLink" + nome,
 idBtn: "idBtn" + nome,
 classe: "",
 nome: item.ExpressaoIdioma
 }));
 listaPermissoes[i] = nome;
 });
 $("#idLinkDocPendentes").on("click", function () {
 self.verificarDocumentos();
 });
 self.checkPendentes();
 $('#divNotificationBar').off('change.atualizarPendentes');
 $('#divNotificationBar').on('change.atualizarPendentes', function (e) {
 var dataAtual = new Date();
 var timeDiff = dataAtual - dataAnterior;
 timeDiff = timeDiff / 60000;
 if (timeDiff > 2) {
 self.checkPendentes();
 }
 else {
 self.checkPendentes('sala');
 }
 dataAnterior = dataAtual;
 })
 },
 /* 
 Avisos
 DocPendentes
 Comunicados
 Solicitacoes
 */
 checkPendentes: function checkPendentes(tipo) {
 
 /* if (tipo == 'sala') {*/
 this.mostrarItensHeader();
 /* }
 */
 if ((listaPermissoes.indexOf("Avisos") != -1 || listaPermissoes.indexOf("DocPendentes") != -1))
 {
 if(listaObjPermissoes[listaPermissoes.indexOf("Avisos")].verSalaHeader == true || tipo == 'sala') {
 this.checkTotalAvisosDocumentos();
 }
 }
 if ((listaPermissoes.indexOf("Solicitacoes") != -1 || listaPermissoes.indexOf("Comunicados") != -1) ){
 if (listaObjPermissoes[listaPermissoes.indexOf("Solicitacoes")].verSalaHeader == true || tipo == 'sala') {
 this.checkSolicitacaoComunicado();
 }
 }
 if (listaPermissoes.indexOf("Contatos") != -1 ) {
 //if (listaObjPermissoes[listaPermissoes.indexOf("Contatos")].verSalaHeader == true || tipo == 'sala') {
 this.checkContatos();
 //}
 }
 },
 popularCountsAvisoDocumento: function popularCountsAvisoDocumento(totalAvisos,totalDocumentos,exibirDocumentos) {
 $("#divAvisos").show();
 
 var self = this;
 if (totalAvisos > 0) {
 var totalAvisosAux = $("#idTotalAvisos").html();
 $("#idTotalAvisos").attr("class", "notification-counter");
 var totalAvisosAux = $("#idTotalAvisos").html();
 $("#idTotalAvisos").attr('data-total', totalAvisos);
 if (totalAvisosAux != totalAvisos) {
 if (totalAvisos <= 50) {
 $("#idTotalAvisos").hide();
 $("#idTotalAvisos").html(totalAvisos).slideDown('slow');
 }
 else {
 $("#idTotalAvisos").html("50+");
 }
 
 }
 }
 if (totalDocumentos > 0) {
 var totalDocumentosAux = $("#idTotalDocPendentes").html();
 $("#idTotalDocPendentes").attr("class", "notification-counter");
$("#divDocPendentes").show();
 if (totalDocumentosAux != totalDocumentos) {
 if (totalDocumentos <= 50) {
 $("#idTotalDocPendentes").hide();
 $("#idTotalDocPendentes").html(totalDocumentos).slideDown('slow');
 }
 else {
 $("#idTotalDocPendentes").html("50+");
 }
 }
 if(exibirDocumentos == true){
 this.verificarDocumentos();
 }
 }
 else {
 $("#divDocPendentes").html('');
 }
 $('#idTotalAvisos').off('change.atualizarTotaisSala');
 $('#idTotalAvisos').on('change.atualizarTotaisSala', function (e) {
 self.checkAvisosNaoLidos();
 })
 $('#idTotalAvisos').off('change.atualizarTotais');
 $('#idTotalAvisos').on('change.atualizarTotais', function (e) {
 var total = parseInt($(e.currentTarget).attr('data-total'));
 if ((total - 1) <= 0) {
 $(e.currentTarget).html("");
 $(e.currentTarget).attr("class", "");
 }
 else if (total <= 50) {
 $(e.currentTarget).hide();
 $(e.currentTarget).html(total - 1).slideDown('slow');
 }
 $(e.currentTarget).attr("data-total", (total - 1));
 })
 },
 checkTotalAvisosDocumentos: function checkTotalAvisosDcumentos() {
 var self = this;
 var config = {
 url: App.config.UrlWs('sistema') + 'Aviso/0/GetTotalAvisosNaoLidosDocumentosPendentes',
 async: true,
 successCallback: function (resposta) {
 self.popularCountsAvisoDocumento(resposta.totalAvisos, resposta.totalDocumentos,resposta.exibirAlerta);
 },
 errorCallback: function () { }
 };
 App.Helpers.ajaxRequest(config);
 },
 checkAvisosNaoLidos: function checkAvisosNaoLidos() {
 var self = this;
 self.esconderItensSala();
 $('#idTotalAvisos').html("");
 $('#idTotalAvisos').attr("class", "");
 
 },
 esconderItensSala: function esconderItensSala() {
 $(listaObjPermissoes).each(function (i, item) {
 if(!item.verSalaHeader){
 $('#div' + item.ExpressaoIdioma.replace(".", "").replace("ç", "c").replace("õ", "o")).hide();
 }
 })
 },
 mostrarItensHeader: function mostrarItensHeader() {
 $(listaObjPermissoes).each(function (i, item) {
 if(!item.verSalaHeader){
 $('#div' + item.ExpressaoIdioma.replace(".", "").replace("ç", "c").replace("õ", "o")).show();
 }
 })
 },
 checkSolicitacaoComunicado: function checkSolicitacaoComunicado() {
 var self = this;
 var config = {
 url: App.config.UrlWs('pap') + 'solicitacao/0/TotalSolicitacaoComunicadoPendentes',
 async: true,
 successCallback: function (resposta) {
 self.popularCountsSolicitacaoComunicado(resposta.vSolicitacaoComunicadoContagem.totalSolicitacao, resposta.vSolicitacaoComunicadoContagem.totalComunicado);
 },
 errorCallback: function () { }
 };
 App.Helpers.ajaxRequest(config);
 },
 popularCountsSolicitacaoComunicado: function popularCountsSolicitacaoComunicado(totalSolicitacao, totalComunicado) {
 $("#divSolicitacoes").show();
 $("#divComunicados").show();
 if (totalSolicitacao > 0) {
 var totalSolicitacaoAux = $("#idTotalDocPendentes").html();
 $("#idTotalSolicitacoes").attr("class", "notification-counter");
 $("#idTotalSolicitacoes").attr('data-total', totalSolicitacao);
 if (totalSolicitacaoAux != totalSolicitacao) {
 if (totalSolicitacao <= 50) {
 $("#idTotalSolicitacoes").hide();
 $("#idTotalSolicitacoes").html(totalSolicitacao).slideDown('slow');
 }
 else {
 $("#idTotalSolicitacoes").html("50+");
 }
 }
 }
 if (totalComunicado > 0) {
 var totalComunicadoAux = $("#idTotalDocPendentes").html();
 $("#idTotalComunicados").attr("class", "notification-counter");
 $("#idTotalComunicados").attr('data-total', totalComunicado);
 if (totalComunicadoAux != totalComunicado) {
 if (totalComunicado <= 50) {
 $("#idTotalComunicados").hide();
 $("#idTotalComunicados").html(totalComunicado).slideDown('slow');
 }
 else {
 $("#idTotalComunicados").html("50+");
 }
 }
 }
 $('#idTotalSolicitacoes, #idTotalComunicados').on('change.atualizarTotais', function (e) {
 
 var total = parseInt($(e.currentTarget).attr('data-total'));
 if ((total - 1) <= 0) {
 $(e.currentTarget).html("");
 $(e.currentTarget).attr("class", "");
 }
 else if (total <= 50) {
 $(e.currentTarget).hide();
 $(e.currentTarget).html(total - 1).slideDown('slow');
 }
 $(e.currentTarget).attr("data-total",(total - 1));
 })
 },
 checkContatos: function checkContatos() {
 var self = this;
 var config = {
 url: App.config.UrlWs('interacao') + 'MensagemFidelizacao/0/GetTotalContatosNaoLidos/',
 async: true,
 successCallback: function (resposta) {
 var total = resposta.totalContatosNaoLidos;
 if ((total) <= 0) {
 $('#idTotalContatos').html("");
 $('#idTotalContatos').attr("class", "");
 }
 else if (total <= 50) {
 $('#idTotalContatos').attr("class", "notification-counter");
 $('#idTotalContatos').attr("data-total", total);
 $('#idTotalContatos').html(total).slideDown('slow');
 }
 else {
 $('#idTotalContatos').attr("class", "notification-counter");
 $('#idTotalContatos').attr("data-total", "50+");
 $('#idTotalContatos').html("50+").slideDown('slow');
 }
 $('#idTotalContatos').off('change.AumentarTotalContatos');
 $('#idTotalContatos').on('change.AumentarTotalContatos', function (e) {
 var total = parseInt($(e.currentTarget).attr('data-total'));
 if ((total + 1) <= 0) {
 $(e.currentTarget).html("");
 $(e.currentTarget).attr("class", "");
 }
 else if (total <= 50) {
 $(e.currentTarget).hide();
 $(e.currentTarget).html(total + 1).slideDown('slow');
 }
 $(e.currentTarget).attr("data-total", (total + 1));
 })
 $('#idTotalContatos').off('change.DiminuirTotalContatos');
 $('#idTotalContatos').on('change.DiminuirTotalContatos',
function (e) {
 var total = parseInt($(e.currentTarget).attr('data-total'));
 if ((total - 1) <= 0) {
 $(e.currentTarget).html("");
 $(e.currentTarget).attr("class", "");
 }
 else if (total <= 50) {
 $(e.currentTarget).hide();
 $(e.currentTarget).html(total - 1).slideDown('slow');
 }
 $(e.currentTarget).attr("data-total", (total - 1));
 })
 },
 errorCallback: function () { }
 };
 App.Helpers.ajaxRequest(config);
 },
 verificarDocumentos: function verificarDocumentos (e) {		 
 App.Helpers.ajaxRequest({
 url: App.config.UrlWs('sistema') + 'Aviso/0/DocumentosUsuario?pagina=1&numRegistros=1',
 successCallback: this.montarModalDocumentos, 
 async: true
 });
 },
 confirmarAtualizarDocumentoEntregue: function (idAviso) {
 App.Helpers.ajaxRequest({
 url: App.config.UrlWs('sistema') + 'Aviso/' + idAviso + '/DocumentoEnviadoUsuario', 
 async: true
 
 });
 },
 montarModalDocumentos: function (r) {
 var self = this;
 if (r.avisos.length == 1 && r.avisos[0].id > 0) {
 try{
 var tpl = _.template(templateDocumentos); 
 var mensagem = tpl(r.avisos[0]);
 var buttons = new Array();
 if (!r.avisos[0].lido) {
 buttons.push({
 'type': "button",
 'klass': "btn btn-primary",
 'text': "Documento entregue",
 'dismiss': null,
 'id': 'modal-ok',
 //'modal':{backdrop: 'static', keyboard: false},
 'onClick': function (event, jQModalElement) {
 App.Helpers.ajaxRequest({
 url: App.config.UrlWs('sistema') + 'Aviso/' + r.avisos[0].id + '/DocumentoEnviadoUsuario',
 async: true
 });
 jQModalElement.modal('hide');
 }
 });
 }
 buttons.push({
 'type': "button",
 'klass': "btn btn-default",
 'text': "Fechar",
 'dismiss': 'modal',
 'id': 'modal-cancel'
 });
 UNINTER.Helpers.showModalAdicionarFila({
 size: "",
 body: mensagem,
 modal: {keyboard: false},
 //title: r.avisos[0].assunto,
 buttons: buttons
 });
 }
 catch (e) {
 console.error(e);
 }
 }
 },
 });
});

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais