Beispiel #1
0
    public function proxima_pagina($inicio)
    {
        if (!$this->input->is_ajax_request()) {
            show_404();
        }
        try {
            $usuarioAutenticado = $this->autenticacao->getUsuarioAutenticado();
            $feeds_usuario = $this->carregar_feeds($inicio, '', $this->_count);
            $this->load->helper('paginacao_cassandra');
            $dadosPaginados = create_paginacao_cassandra($feeds_usuario, $this->_count);
            $qtdFeeds = count($feeds_usuario);
            $comentarios_feed = array();
            $this->load->helper('comentarios_feed');
            for ($i = 0; $i < $qtdFeeds; $i++) {
                $comentarios_feed[$i] = carregar_comentarios('', '', 2, $feeds_usuario[$i]->getId());
            }
            $response = array('success' => true, 'htmlListaFeeds' => $this->template->loadPartial('lista', array('qtdFeeds' => $qtdFeeds, 'feeds_usuario' => $feeds_usuario, 'comentarios_feed' => $comentarios_feed, 'usuarioAutenticado' => $usuarioAutenticado, 'paginacao' => $dadosPaginados), 'usuario/feed'), 'paginacao' => $dadosPaginados);
            $json = Zend_Json::encode($response);
        } catch (UUIDException $e) {
            log_message('error', 'Ocorreu um erro ao tentar recupera uma nova página de feeds ' . create_exception_description($e));
            $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos verificando.
Tente novamente mais tarde.');
            $json = create_json_feedback(false, $error);
        }
        echo $json;
    }
Beispiel #2
0
    public function proxima_pagina($idAmigo, $inicio)
    {
        if (!$this->input->is_ajax_request()) {
            show_404();
        }
        try {
            $usuario = $this->autenticacao->getUsuarioAutenticado();
            $amigo = WeLearn_DAO_DAOFactory::create('UsuarioDAO')->recuperar($idAmigo);
            $mensagemDao = WeLearn_DAO_DAOFactory::create('MensagemPessoalDAO');
            $filtros = array('count' => self::$_count + 1, 'usuario' => $usuario, 'amigo' => $amigo);
            try {
                $listaMensagens = $mensagemDao->recuperarTodos($inicio, '', $filtros);
            } catch (cassandra_NotFoundException $e) {
                $listaMensagens = array();
            }
            $this->load->helper('paginacao_cassandra');
            $dadosPaginados = create_paginacao_cassandra($listaMensagens, self::$_count);
            $dadosPaginados = array_reverse($dadosPaginados);
            $response = array('success' => true, 'htmlListaMensagens' => $this->template->loadPartial('lista', array('idAmigo' => $idAmigo, 'haMensagens' => !empty($dadosPaginados), 'mensagens' => $listaMensagens, 'inicioProxPagina' => $dadosPaginados['inicio_proxima_pagina']), 'usuario/mensagem'), 'paginacao' => $dadosPaginados);
            $json = Zend_Json::encode($response);
        } catch (UUIDException $e) {
            log_message('error', 'Ocorreu um erro ao tentar recupera uma nova página de mensagens: ' . create_exception_description($e));
            $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos verificando.
Tente novamente mais tarde.');
            $json = create_json_feedback(false, $error);
        }
        echo $json;
    }
Beispiel #3
0
 public function recuperar_lista($area = '')
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     if ($area) {
         try {
             $segmentoDao = WeLearn_DAO_DAOFactory::create('SegmentoDAO');
             $opcoes = array('areaId' => $area);
             $listaSegmentos = $segmentoDao->recuperarTodos('', '', $opcoes);
             $dropdownSegmentos = array();
             foreach ($listaSegmentos as $segmento) {
                 $dropdownSegmentos[] = $segmento->toCassandra();
             }
             $segmentosJSON = Zend_Json::encode($dropdownSegmentos);
             echo '{"success":true, "segmentos":' . $segmentosJSON . '}';
         } catch (cassandra_NotFoundException $e) {
             $error_msg = 'Esta área ainda não possui segmentos,' . ' sinta-se a vontade para adicionar um segmento você mesmo!';
             $error = create_json_feedback_error_json($error_msg, 'area');
             echo create_json_feedback(false, $error);
         } catch (Exception $e) {
             log_message('error', 'Erro ao recuperar lista de segmentos: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ops! ocorreu um erro. Tente novamente em breve.');
             echo create_json_feedback(false, $error);
         }
     }
 }
Beispiel #4
0
 public function recuperar_lista_estados($pais = '')
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     if ($pais) {
         try {
             $paisEstadoDao = WeLearn_DAO_DAOFactory::create('PaisEstadoDAO', null, false);
             $estadosJSON = $paisEstadoDao->recuperarEstadosDeUmPaisJSON($pais);
             echo '{"success": true, "estados":' . $estadosJSON . '}';
         } catch (cassandra_NotFoundException $e) {
             $error = create_json_feedback_error_json('O país selecionado não tem estados cadastrados.', 'estado');
             echo create_json_feedback(false, $error);
         } catch (Exception $e) {
             log_message('error', 'Não foi possível retornar a lista de estados: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ops, ocorreu um erro desconhecido. Tente novamente mais tarde.');
             echo create_json_feedback(false, $error);
         }
     }
 }
Beispiel #5
0
 public function finalizar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $usuarioAtual = $this->autenticacao->getUsuarioAutenticado();
         $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO');
         $usuarioDao->registrarPassouPeloQuickstart($usuarioAtual);
         $this->load->helper('notificacao_js');
         $this->session->set_flashdata('notificacoesFlash', create_notificacao_json('sucesso', 'Quickstart finalizado com sucesso!<br>
             Caso queira alterar desses dados, é só ir em "Configurações" no menu à esquerda.'));
         $json = create_json_feedback(true);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar finalizar quickstart. ' . create_exception_description($e));
         $errors = create_json_feedback_error_json('Ops! Ocorreu um erro no servidor, desculpe pelo incidente.<br/>' . 'Já estamos verificando, tente novamente em breve.');
         $json = create_json_feedback(false, $errors);
     }
     echo $json;
 }
Beispiel #6
0
 public function proxima_pagina($inicio)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $count = 20;
         try {
             $listaNotificacoes = $this->_notificacaoDao->recuperarTodosPorUsuario($this->_usuarioAtual, $inicio, '', $count + 1);
         } catch (cassandra_NotFoundException $e) {
             $listaNotificacoes = array();
         }
         $this->load->helper('paginacao_cassandra');
         $paginacao = create_paginacao_cassandra($listaNotificacoes, $count);
         $response = Zend_Json::encode(array('htmlListaNotificacoes' => $this->template->loadPartial('lista', array('listaNotificacoes' => $listaNotificacoes), 'notificacao'), 'paginacao' => $paginacao));
         $json = create_json_feedback(true, '', $response);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentat listar próxima página de notificações de usuário: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro desconhecido, já estamos verificando. Tente novamente mais tarde.');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #7
0
 public function salvar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $this->load->helper('notificacao_js');
         $this->load->library('form_validation');
         if (!$this->form_validation->run()) {
             $json = create_json_feedback(false, validation_errors_json());
         } else {
             switch ($this->input->post('acao')) {
                 case 'criar':
                     $json = $this->_criar($this->input->post());
                     break;
                 case 'alterar':
                     $json = $this->_alterar($this->input->post());
                     break;
                 default:
                     throw new WeLearn_Base_Exception('Ação ao salvar inválida!');
             }
         }
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao tentar salvar comentário: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado,
                     já estamos tentando resolver. Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #8
0
 public function salvar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     $this->load->library('form_validation');
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
     } else {
         try {
             $this->load->helper('notificacao_js');
             if ($this->input->post('acao') == 'criar') {
                 $json = $this->_salvarNovoForum($this->input->post());
                 $notificacoesFlash = create_notificacao_json('sucesso', 'O novo fórum foi criado com sucesso, na verdade você já está nele!<br/> Aguarde enquanto essa discussão se desenvolve.', 10000);
             } elseif ($this->input->post('acao') == 'alterar') {
                 $json = $this->_salvarAlteracoesForum($this->input->post());
                 $notificacoesFlash = create_notificacao_json('sucesso', 'Fórum alterado com sucesso!', 10000);
             } else {
                 throw new WeLearn_Base_Exception('Ação de salvar fórum inválida!');
             }
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         } catch (Exception $e) {
             log_message('error', 'Ocorreu um erro ao tentar salvar o fórum: ' . create_exception_description($e));
             $erro = create_json_feedback_error_json('Ocorreu um erro desconhecido ao salvar o fórum. Tente novamente mais tarde.');
             $json = create_json_feedback(false, $erro);
         }
     }
     echo $json;
 }
Beispiel #9
0
 public function salvar_qtd_questoes_exibir($idAvaliacao)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $avaliacaoDao = WeLearn_DAO_DAOFactory::create('AvaliacaoDAO');
         $avaliacao = $avaliacaoDao->recuperar($idAvaliacao);
         $questaoDao = WeLearn_DAO_DAOFactory::create('QuestaoAvaliacaoDAO');
         $qtdQuestoes = $questaoDao->recuperarQtdTotalPorAvaliacao($avaliacao);
         $qtdQuestoesExibir = (int) $this->input->get('qtd');
         if ($qtdQuestoesExibir > $qtdQuestoes) {
             $qtdQuestoesExibir = $qtdQuestoes;
         }
         $avaliacao->setQtdQuestoesExibir($qtdQuestoesExibir);
         $avaliacaoDao->salvar($avaliacao);
         $this->load->helper('notificacao_js');
         $response = Zend_Json::encode(array('notificacao' => create_notificacao_array('sucesso', 'A quantidade de questões à serem aplicadas para avaliação <em>"' . $avaliacao->getNome() . '"</em> foi alterada com sucesso!'), 'qtdQuestoesExibir' => $qtdQuestoesExibir));
         $json = create_json_feedback(true, '', $response);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar salvar nova qtd de questões aplicadas de uma avaliacao: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver.
             Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #10
0
 public function alterar_situacao($idEnquete)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $enqueteDao = WeLearn_DAO_DAOFactory::create('EnqueteDAO');
         $enquete = $enqueteDao->recuperar($idEnquete);
         $enquete->alterarSituacao();
         $enqueteDao->salvar($enquete);
         $strSituacao = $enquete->getSituacao() == WeLearn_Cursos_Enquetes_SituacaoEnquete::ABERTA ? 'reaberta' : 'fechada';
         $this->load->helper('notificacao_js');
         $notificacao_array = create_notificacao_array('sucesso', 'A enquete <strong>' . $enquete->getQuestao() . '</strong> foi ' . $strSituacao . ' com sucesso!', 10000);
         $notificacao = Zend_Json::encode(array('notificacao' => $notificacao_array));
         $json = create_json_feedback(true, '', $notificacao);
         if ($this->input->get('exibindoEnquete')) {
             $this->session->set_flashdata('notificacoesFlash', Zend_Json::encode($notificacao_array));
         }
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar alterar situação da enquete de curso: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver. Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #11
0
 public function remover($idPost)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $postDao = WeLearn_DAO_DAOFactory::create('PostForumDAO');
         $postDao->remover($idPost);
         $this->load->helper('notificacao_js');
         $extraJson = Zend_Json::encode(array('notificacao' => create_notificacao_array('sucesso', 'O seu post foi removido com sucesso!', 10000)));
         $json = create_json_feedback(true, '', $extraJson);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar remover um post: ' . create_exception_description($e));
         $erro = create_json_feedback_error_json('Ocorreu um erro inesperado! Já estamos verificando, tente novamente mais tarde.');
         $json = create_json_feedback(false, $erro);
     }
     echo $json;
 }
Beispiel #12
0
 public function salvar()
 {
     set_json_header();
     $this->load->library('form_validation');
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
         echo $json;
     } else {
         try {
             $descricaoArea = $this->input->post('descricao');
             $this->load->helper('notificacao_js');
             $novaArea = $this->_areaDAO->criarNovo();
             $novaArea->setDescricao($descricaoArea);
             $this->_areaDAO->salvar($novaArea);
             $notificacoesFlash = create_notificacao_json('sucesso', 'A nova Área foi criada com sucesso.', 10000);
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
             $json = create_json_feedback(true, '', '"idArea":"' . $novaArea->getDescricao() . '"');
         } catch (Exception $e) {
             log_message('error', 'Erro a criar a Área: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro inesperado! Já estamos verificando, tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
         echo $json;
     }
 }
Beispiel #13
0
 public function mais_resultados($inicio)
 {
     try {
         $texto = $this->input->get('busca');
         $listaResultados = null;
         $buscaAtual = $texto;
         $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO');
         $filtros = array('busca' => $buscaAtual, 'count' => self::$_count + 1);
         $listaResultados = $usuarioDao->recuperarTodos($inicio, null, $filtros);
         $this->load->helper('paginacao_mysql');
         $paginacao = create_paginacao_mysql($listaResultados, $inicio, self::$_count);
         $response = Zend_Json::encode(array('htmlResultadosBusca' => $this->template->loadPartial('lista_busca', array('listaResultados' => $listaResultados), 'usuario/amigos'), 'paginacao' => $paginacao));
         $json = create_json_feedback(true, '', $response);
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao tentar recuperar proxima página de resultados da busca: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro desconhecido, já estamos verificando. Tente novamente mais tarde.');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #14
0
 private function _salvarConfiguracoes()
 {
     if (!$this->form_validation->run('curso/salvar_config')) {
         $json = create_json_feedback(false, validation_errors_json());
     } else {
         try {
             $dadosConfig = $this->input->post();
             $curso = $this->_cursoDao->recuperar($dadosConfig['id']);
             if ($curso->getSegmento()->getId() != $dadosConfig['segmento']) {
                 $segmentoDao = WeLearn_DAO_DAOFactory::create('SegmentoDAO');
                 $dadosConfig['segmento'] = $segmentoDao->recuperar($dadosConfig['segmento']);
             } else {
                 unset($dadosConfig['segmento']);
             }
             if (isset($dadosConfig['imagem']) && is_array($dadosConfig['imagem'])) {
                 if ($curso->getImagem()) {
                     unlink($curso->getImagem()->getDiretorioCompleto());
                 }
                 $dadosConfig['imagem'] = $this->_salvarImagem($dadosConfig['imagem']);
                 if ($dadosConfig['imagem'] != null) {
                     $dadosConfig['imagem']->setCursoId($curso->getId());
                 }
             }
             //Rotina para verificar se conteudo está sendo aberto
             $novoStatus = (int) $dadosConfig['status'];
             $avisos = array();
             if ($curso->getStatus() != $novoStatus && $novoStatus === WeLearn_Cursos_StatusCurso::CONTEUDO_ABERTO) {
                 $totalPaginas = WeLearn_DAO_DAOFactory::create('PaginaDAO')->recuperarQtdTotalPorCurso($curso);
                 $totalAvaliacoes = WeLearn_DAO_DAOFactory::create('AvaliacaoDAO')->recuperarQtdTotalAtivas($curso);
                 try {
                     $haCertificadoAtivo = WeLearn_DAO_DAOFactory::create('CertificadoDAO')->recuperarAtivoPorCurso($curso);
                 } catch (cassandra_NotFoundException $e) {
                     $haCertificadoAtivo = false;
                 }
                 if ($totalPaginas < 1 || $totalAvaliacoes < 1 || !$haCertificadoAtivo) {
                     //Verifica se há conteúdo mínimo para abrir
                     unset($dadosConfig['status']);
                     if ($totalAvaliacoes == 0) {
                         $avisos[] = 'Seu curso não possui nenhuma avaliação ativa. Não é' . ' possível abrir o conteúdo do curso até que seja criada' . ' e ativada, pelo menos uma avaliação.';
                     }
                     if ($totalPaginas == 0) {
                         $avisos[] = 'Seu curso não possui conteúdo para passar para os alunos.' . ' Não é possível abrir o conteúdo do curso até que seja criada' . ' pelo menos uma página de conteúdo.';
                     }
                     if (!$haCertificadoAtivo) {
                         $avisos[] = 'Seu curso não possui um certificado ativo.' . ' Não é possível abrir o conteúdo do curso até que exista' . ' um certificado ativo vinculado a este curso.';
                     }
                 }
             }
             //fim da rotina
             $curso->getConfiguracao()->preencherPropriedades($dadosConfig);
             $curso->preencherPropriedades($dadosConfig);
             $this->_cursoDao->salvar($curso);
             $qtdAvisos = count($avisos);
             if ($qtdAvisos == 0) {
                 //Se não houve erros
                 $notificacoesFlash = create_notificacao_json('sucesso', 'As alterações nas configurações do curso foram salvas com sucesso!', 5000);
             } else {
                 //Se ouve, mostrá-los
                 $msg = '<div><p>As alterações nas configurações do curso foram' . ' salvas, mas houve alguns problemas:</p><ul>';
                 for ($i = 0; $i < $qtdAvisos; $i++) {
                     $msg .= '<li>' . $avisos[$i] . '</li>';
                 }
                 $msg .= '</ul></div>';
                 $notificacoesFlash = create_notificacao_json('aviso', $msg, 20000);
             }
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
             $json = create_json_feedback(true);
         } catch (Exception $e) {
             log_message('error', 'Ocorreu um erro ao tentar salvar as configurações do curso' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro desconhecido, já estamos verificando. Tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
     }
     return $json;
 }
Beispiel #15
0
 public function listar_certificados($idUsuarioPerfil)
 {
     if ($idUsuarioPerfil == '') {
         show_404();
     }
     try {
         $usuarioPerfil = $this->_usuarioDao->recuperar($idUsuarioPerfil);
     } catch (cassandra_NotFoundException $e) {
         show_404();
     }
     $usuarioAutenticado = $this->autenticacao->getUsuarioAutenticado();
     if ($usuarioPerfil->getId() != $usuarioAutenticado->getId()) {
         $saoAmigos = $this->_amizadeUsuarioDao->SaoAmigos($usuarioPerfil, $usuarioAutenticado);
         if ($usuarioPerfil->configuracao->privacidadePerfil == WeLearn_Usuarios_PrivacidadePerfil::PRIVADO && ($saoAmigos == WeLearn_Usuarios_StatusAmizade::NAO_AMIGOS || $saoAmigos == WeLearn_Usuarios_StatusAmizade::REQUISICAO_EM_ESPERA) || $usuarioPerfil->getId() == $usuarioAutenticado->getId()) {
             show_404();
         }
     }
     try {
         $this->template->appendJSImport('certificado_aluno.js');
         $usuarioAutenticado = $this->autenticacao->getUsuarioAutenticado();
         $certificadoDao = WeLearn_DAO_DAOFactory::create('CertificadoDAO');
         $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO');
         $usuarioPerfil = $usuarioDao->recuperar($idUsuarioPerfil);
         $aluno = $usuarioDao->criarAluno($usuarioPerfil);
         try {
             $listaCertificados = $certificadoDao->recuperarTodosPorAluno($aluno, '', '', 1000000);
         } catch (cassandra_NotFoundException $e) {
             $listaCertificados = array();
         }
         $dadosView = array('haCertificados' => !empty($listaCertificados), 'totalCertificados' => count($listaCertificados), 'usuarioPerfil' => $usuarioPerfil, 'usuarioAutenticado' => $usuarioAutenticado, 'listaCertificados' => $listaCertificados);
         $this->_renderTemplatePerfil('usuario/cursos/perfil_certificados', $dadosView);
     } catch (Exception $e) {
         log_message('error', 'Erro ao exibir lista de certificados do usuário: ' . create_exception_description($e));
         show_404();
     }
 }
Beispiel #16
0
 public function enviar()
 {
     $this->load->library('form_validation');
     if ($this->form_validation->run() === FALSE) {
         $json = create_json_feedback(false, validation_errors_json());
         exit($json);
     } else {
         try {
             $conviteCadastradoDao = WeLearn_DAO_DAOFactory::create('ConviteCadastradoDAO');
             $amizadeUsuarioDao = WeLearn_DAO_DAOFactory::create('AmizadeUsuarioDAO');
             $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO');
             $mensagem = $this->input->post('txt-convite');
             $remetente = $this->autenticacao->getUsuarioAutenticado();
             $destinatario = $usuarioDao->recuperar($this->input->post('destinatario'));
             $saoAmigos = $amizadeUsuarioDao->saoAmigos($remetente, $destinatario);
             if ($saoAmigos == WeLearn_Usuarios_StatusAmizade::NAO_AMIGOS) {
                 $conviteCadastrado = $conviteCadastradoDao->criarNovo();
                 $conviteCadastrado->setMsgConvite($mensagem);
                 $conviteCadastrado->setRemetente($remetente);
                 $conviteCadastrado->setDestinatario($destinatario);
                 $conviteCadastrado->setStatus(WeLearn_Convites_StatusConvite::EM_ESPERA_NOVO);
                 $conviteCadastrado->setDataEnvio(time());
                 $conviteCadastradoDao->salvar($conviteCadastrado);
                 $amizadeUsuarioObj = $amizadeUsuarioDao->criarNovo();
                 $amizadeUsuarioObj->setUsuario($remetente);
                 $amizadeUsuarioObj->setAmigo($destinatario);
                 $amizadeUsuarioObj->setStatus(WeLearn_Usuarios_StatusAmizade::REQUISICAO_EM_ESPERA);
                 $amizadeUsuarioDao->salvar($amizadeUsuarioObj);
                 $json = Zend_Json::encode(array('success' => true));
                 $this->load->helper('notificacao_js');
                 $notificacoesFlash = create_notificacao_json('sucesso', 'Convite enviado com sucesso!');
                 $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
                 //enviar notificação ao usuário;
                 $notificacao = new WeLearn_Notificacoes_NotificacaoRequisicaoAmizade();
                 $notificacao->setConvite($conviteCadastrado);
                 $notificacao->setDestinatario($destinatario);
                 $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorCassandra());
                 $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorTempoReal());
                 $notificacao->notificar();
                 //fim da notificação;
             } else {
                 if ($saoAmigos == WeLearn_Usuarios_StatusAmizade::REQUISICAO_EM_ESPERA) {
                     $this->load->helper('notificacao_js');
                     $json = Zend_Json::encode(array('success' => true, 'amigos' => true));
                     $notificacoesFlash = create_notificacao_json('aviso', 'Voce Recebeu um Convite de ' . $destinatario->getNome() . '!');
                     $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
                 }
             }
         } catch (Exception $e) {
             log_message('error', 'Ocorreu um erro ao tentar enviar o convite ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos verificando.
                 Tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
         echo $json;
     }
 }
Beispiel #17
0
 public function salvar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     $this->load->library('form_validation');
     if ($this->form_validation->run() === FALSE) {
         $errors = validation_errors_json();
         $json = create_json_feedback(false, $errors);
     } else {
         try {
             $dadosForm = $this->input->post();
             $area = new WeLearn_Cursos_Area($dadosForm['area']);
             $segmento = new WeLearn_Cursos_Segmento($dadosForm['segmento'], '', $area);
             $dadosForm['segmento'] = $segmento;
             $sugestaoCursoDao = WeLearn_DAO_DAOFactory::create('SugestaoCursoDAO');
             $novaSugestao = $sugestaoCursoDao->criarNovo($dadosForm);
             $novaSugestao->setCriador($this->autenticacao->getUsuarioAutenticado());
             $sugestaoCursoDao->salvar($novaSugestao);
             $this->load->helper('notificacao_js');
             $notificacoesFlash = create_notificacao_json('sucesso', 'A sugestão de curso foi enviada com sucesso! Obrigado pela participação!', 5000);
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
             $json = create_json_feedback(true);
         } catch (Exception $e) {
             log_message('error', 'Erro ao salvar sugestão de curso: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Não foi possível criar a sugestão de curso, tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
     }
     echo $json;
 }
Beispiel #18
0
 public function remover_upload($idRecurso)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $this->load->helper('file');
         try {
             $recursoDao = WeLearn_DAO_DAOFactory::create('RecursoDAO');
             $recurso = $recursoDao->recuperar($idRecurso);
             $dir = $recurso->getCaminho();
         } catch (cassandra_NotFoundException $e) {
             $dir = $this->_tempRecursoDir . $idRecurso;
         }
         if (is_dir($dir)) {
             delete_files($dir, true);
             rmdir($dir);
         }
         $json = create_json_feedback(true);
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao remover upload temporario: ' . create_exception_description($e));
         $json = create_json_feedback(false);
     }
     echo $json;
 }
Beispiel #19
0
 public function salvar_anotacao($idPagina)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $pagina = $this->_paginaDao->recuperar($idPagina);
         $anotacao = $this->_anotacaoDao->criarNovo(array('conteudo' => $this->input->post('anotacao'), 'usuario' => $this->_alunoAtual, 'pagina' => $pagina));
         $this->_anotacaoDao->salvar($anotacao);
         $json = create_json_feedback(true);
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao tentar salvar anotação de página: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado,
                     já estamos tentando resolver. Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #20
0
 public function salvar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     $this->load->library('form_validation');
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
     } else {
         $this->load->helper('notificacao_js');
         try {
             switch ($this->input->post('acao')) {
                 case 'criar':
                     $json = $this->_adicionar($this->input->post());
                     $notificacoesFlash = create_notificacao_json('sucesso', 'A aula foi criada com sucesso!
                          Verifique abaixo os dados inseridos na
                          lista de aulas deste módulo.');
                     break;
                 case 'alterar':
                     $notificacoesFlash = create_notificacao_json('sucesso', 'As alterações da aula foram salvas com sucesso!');
                     $json = $this->_alterar($this->input->post());
                     break;
                 default:
                     throw new WeLearn_Base_Exception('Ação inválida ao salvar aula.');
             }
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         } catch (Exception $e) {
             log_message('error', 'Erro ao tentar salvar aula de módulo: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver.
                 Tente novamente mais tarde!');
             $json = create_json_feedback(false, $error);
         }
     }
     echo $json;
 }
Beispiel #21
0
 public function salvar()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     $this->load->library('form_validation');
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
     } else {
         try {
             $dadosCategoria = $this->input->post();
             $categoriaDao = WeLearn_DAO_DAOFactory::create('CategoriaForumDAO');
             $this->load->helper('notificacao_js');
             if (isset($dadosCategoria['acao']) && $dadosCategoria['acao'] == 'criar') {
                 $dadosCategoria['curso'] = $this->_cursoDao->recuperar($dadosCategoria['cursoId']);
                 $dadosCategoria['criador'] = $this->autenticacao->getUsuarioAutenticado();
                 $novaCategoria = $categoriaDao->criarNovo($dadosCategoria);
                 $categoriaDao->salvar($novaCategoria);
                 $notificacoesFlash = create_notificacao_json('sucesso', 'A nova categoria de fóruns foi criada com sucesso. <br/> Comece a adicionar fóruns à esta categoria!', 10000);
                 $json = create_json_feedback(true, '', '"idCurso":"' . $novaCategoria->getCurso()->getid() . '"');
             } elseif (isset($dadosCategoria['acao']) && $dadosCategoria['acao'] == 'alterar') {
                 $categoria = $categoriaDao->recuperar($dadosCategoria['categoriaId']);
                 $categoria->preencherPropriedades($dadosCategoria);
                 $categoriaDao->salvar($categoria);
                 $notificacoesFlash = create_notificacao_json('sucesso', 'A categoria <strong>' . $categoria->getNome() . '</strong> foi alterada com sucesso!', 10000);
                 $json = create_json_feedback(true, '', '"idCurso":"' . $categoria->getCurso()->getId() . '"');
             } else {
                 throw new WeLearn_Base_Exception('Ação de salvar categoria de fórum inválida!');
             }
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         } catch (Exception $e) {
             log_message('error', 'Erro a criar categoria de fórum: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro inesperado! Já estamos verificando, tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
     }
     echo $json;
 }
Beispiel #22
0
 public function remover($idPagina)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $paginaDao = WeLearn_DAO_DAOFactory::create('PaginaDAO');
         $pagina = $paginaDao->recuperar($idPagina);
         if ($pagina->getAula()->getModulo()->getCurso()->getStatus() === WeLearn_Cursos_StatusCurso::CONTEUDO_ABERTO) {
             throw new WeLearn_Cursos_ConteudoAbertoException();
         }
         $paginaRemovida = $paginaDao->remover($idPagina);
         $this->_salvarAlteracoesOrdem($this->input->get(), $paginaRemovida->getAula());
         $this->load->helper('notificacao_js');
         $response = Zend_Json::encode(array('notificacao' => create_notificacao_array('sucesso', 'A página <em>"' . $paginaRemovida->getNome() . '"</em> foi removida com sucesso!')));
         $json = create_json_feedback(true, '', $response);
     } catch (WeLearn_Cursos_ConteudoAbertoException $e) {
         $this->load->helper('notificacao_js');
         $notificacoesFlash = create_notificacao_json('erro', $e->getMessage());
         $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         $json = create_json_feedback(false);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar remover página: ' . create_exception_description($e));
         $this->load->helper('notificacao_js');
         $notificacoesFlash = create_notificacao_json('erro', 'Ocorreu um erro inesperado, já estamos tentando resolver.
             Tente novamente mais tarde!');
         $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         $json = create_json_feedback(false);
     }
     echo $json;
 }
Beispiel #23
0
 public function login()
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     //O retorno será em JSON.
     set_json_header();
     $this->load->library('form_validation');
     if ($this->form_validation->run() === FALSE) {
         $json = create_json_feedback(false, validation_errors_json());
         exit($json);
     }
     try {
         $login = $this->input->post('login');
         $senha = $this->input->post('password');
         $this->autenticacao->autenticar($login, $senha);
         $json = create_json_feedback(true);
     } catch (WeLearn_Usuarios_AutenticacaoLoginInvalidoException $e) {
         $error = create_json_feedback_error_json($e->getMessage(), 'login');
         $json = create_json_feedback(false, $error);
     } catch (WeLearn_Usuarios_AutenticacaoSenhaInvalidaException $e) {
         $error = create_json_feedback_error_json($e->getMessage(), 'password');
         $json = create_json_feedback(false, $error);
     } catch (Exception $e) {
         log_message('error', 'Erro ao logar usuário. ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ops, ocorreu um erro. Não foi possível efetuar o login no momento. <br />' . 'Já estamos verificando. Tente novamente em breve.');
         $json = create_json_feedback(false, $error);
     }
     //Retorna o resultado!
     echo $json;
 }
Beispiel #24
0
 public function cancelar_requisicao($idCurso)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $curso = $this->_cursoDao->recuperar($idCurso);
         $usuario = $this->autenticacao->getUsuarioAutenticado();
         $this->_alunoDao->recusarRequisicaoInscricao($usuario, $curso);
         $this->load->helper('notificacao_js');
         $response = Zend_Json::encode(array('notificacao' => create_notificacao_array('sucesso', 'Sua inscrição no curso "' . $curso->getNome() . '" foi cancelada com sucesso. :(')));
         $json = create_json_feedback(true, '', $response);
     } catch (cassandra_NotFoundException $e) {
         log_message('error', 'Erro ao tentar cancelar requisição de inscricao: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver.
             Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
 public function exibir_resultados($idAvaliacao)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $avaliacao = $this->_avaliacaoDao->recuperar($idAvaliacao);
         $participacaoCurso = $this->_participacaoCursoDao->recuperarPorCurso($this->_alunoAtual, $avaliacao->getModulo()->getCurso());
         $controleAvaliacao = $this->_controleAvaliacaoDao->recuperarPorParticipacao($participacaoCurso, $avaliacao);
         $questoesAvaliacao = array();
         foreach ($controleAvaliacao->getRespostas() as $resposta) {
             $questao = $this->_questaoAvaliacaoDao->recuperar($resposta->getQuestaoId());
             if ($resposta->isCorreta()) {
                 $arrayQuestao = array('questao' => $questao, 'respostas' => array($resposta));
             } else {
                 $arrayQuestao = array('questao' => $questao, 'respostas' => array($questao->getAlternativaCorreta(), $resposta));
             }
             $questoesAvaliacao[] = $arrayQuestao;
         }
         $response = Zend_Json::encode(array('htmlResultado' => $this->template->loadPartial('avaliacao_resultados', array('controleAvaliacao' => $controleAvaliacao, 'questoesRealizadas' => $questoesAvaliacao, 'questoesEmBranco' => $controleAvaliacao->getAvaliacao()->getQtdQuestoesExibir() - count($questoesAvaliacao)), 'curso/conteudo/aplicacao_avaliacao')));
         $json = create_json_feedback(true, '', $response);
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao tentar exibir resultados de avaliação: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado,
                     já estamos tentando resolver. Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Beispiel #26
0
 public function privacidade()
 {
     try {
         $usuario = $this->autenticacao->getUsuarioAutenticado();
         $dadosViewPrivacidade = array('formAction' => '/usuario/salvar_configuracao', 'extraOpenForm' => 'id="form-privacidade"', 'privacidadePerfilAtual' => $usuario->getConfiguracao()->getPrivacidadePerfil(), 'privacidadeMPAtual' => $usuario->getConfiguracao()->getPrivacidadeMP(), 'privacidadeConvitesAtual' => $usuario->getConfiguracao()->getPrivacidadeConvites(), 'privacidadeCompartilhamentoAtual' => $usuario->getConfiguracao()->getPrivacidadeCompartilhamento(), 'privacidadeNotificacoesAtual' => $usuario->getConfiguracao()->getPrivacidadeNotificacoes());
         $dadosView = array('formPrivacidade' => $this->template->loadPartial('form_configuracao', $dadosViewPrivacidade, 'usuario'));
         $this->_renderTemplateHome('usuario/configuracao/privacidade', $dadosView);
     } catch (Exception $e) {
         log_message('error', 'Erro ao tentar configuração de privacidade usuário:' . create_exception_description($e));
         show_404();
     }
 }
Beispiel #27
0
 public function salvar()
 {
     set_json_header();
     $this->load->helper('notificacao_js');
     $this->load->library('form_validation');
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
         echo $json;
     } else {
         try {
             $areaDao = WeLearn_DAO_DAOFactory::create('AreaDAO');
             $segmentoDao = WeLearn_DAO_DAOFactory::create('SegmentoDAO');
             $dadosNovoSegmento = array('area' => $areaDao->recuperar($this->input->post('areaId')), 'descricao' => $this->input->post('descricao'));
             $novoSegmento = $segmentoDao->criarNovo($dadosNovoSegmento);
             $segmentoDao->salvar($novoSegmento);
             $notificacoesFlash = create_notificacao_json('sucesso', 'O novo Segmento foi criada com sucesso.', 10000);
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
             $json = create_json_feedback(true, '', '"idSegmento":"' . $novoSegmento->getDescricao() . '"');
         } catch (Exception $e) {
             log_message('error', 'Erro a criar a Área: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro inesperado! Já estamos verificando, tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
         echo $json;
     }
 }
Beispiel #28
0
 public function enviar_convites($idCurso)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $curso = $this->_cursoDao->recuperar($idCurso);
         $idUsuarios = explode(',', $this->input->get('usuarios'));
         $errors = array();
         $convidados = array();
         foreach ($idUsuarios as $idUsuario) {
             try {
                 $usuario = $this->_gerenciadorDao->recuperar($idUsuario);
                 $vinculo = $this->_cursoDao->recuperarTipoDeVinculo($usuario, $curso);
                 switch ($vinculo) {
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::ALUNO_INSCRICAO_PENDENTE:
                         $errors[] = anchor('/perfil/' . $usuario->getId(), $usuario->getNome()) . ': Há uma requisição de inscrição no curso pendente vindo deste usuário.';
                         break;
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::GERENCIADOR_CONVITE_PENDENTE:
                         $errors[] = anchor('/perfil/' . $usuario->getId(), $usuario->getNome()) . ': Este usuário já foi convidado para o gerenciamento deste curso.';
                         break;
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::GERENCIADOR_AUXILIAR:
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::GERENCIADOR_PRINCIPAL:
                         $errors[] = anchor('/perfil/' . $usuario->getId(), $usuario->getNome()) . ': Este usuário já está vinculado ao gerenciamento deste curso.';
                         break;
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::ALUNO:
                         $errors[] = anchor('/perfil/' . $usuario->getId(), $usuario->getNome()) . ': Este usuário terá que deixar de ser aluno para ser convidado ao gerenciamento.';
                         break;
                     case WeLearn_Usuarios_Autorizacao_NivelAcesso::USUARIO:
                     default:
                         $this->_gerenciadorDao->convidar($usuario, $curso);
                         $convidados[] = $usuario;
                 }
             } catch (Exception $e) {
                 $errors[] = 'Não foi possível enviar convite ao usuário "' . $idUsuario . '". Tente novamente mais tarde.';
             }
         }
         $this->load->helper('notificacao_js');
         if (count($errors) > 0) {
             $errorsHtml = '';
             foreach ($errors as $error) {
                 $errorsHtml .= "<li>{$error}</li>";
             }
             $notificacoesFlash = create_notificacao_json('erro', "<div><span>Alguns convites não foram enviados devido à erros, mais informações abaixo:</span><ul>{$errorsHtml}</ul></div>", 0);
         } else {
             $notificacoesFlash = create_notificacao_json('sucesso', 'Todos os convites foram enviados aos destinatários com sucesso!');
         }
         $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
         $json = create_json_feedback(true);
         //Enviar notificação ao convidado;
         $notificadorBatch = new WeLearn_Notificacoes_NotificadorCassandraBatch();
         $notificadorTempoReal = new WeLearn_Notificacoes_NotificadorTempoReal();
         foreach ($convidados as $convidado) {
             $notificacao = new WeLearn_Notificacoes_NotificacaoConviteGerenciamentoCurso();
             $notificacao->setCurso($curso);
             $notificacao->setDestinatario($convidado);
             $notificacao->adicionarNotificador($notificadorBatch);
             $notificacao->adicionarNotificador($notificadorTempoReal);
             $notificacao->notificar();
         }
         //Fim da notificação;
     } catch (cassandra_NotFoundException $e) {
         log_message('error', 'Erro ao tentar buscar usuários para convidar para gerenciamento: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver.
                Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }