public function remover($idAmigo) { try { $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO'); $amizadeDao = WeLearn_DAO_DAOFactory::create('AmizadeUsuarioDAO'); $usuarioAutenticado = $this->autenticacao->getUsuarioAutenticado(); $amigo = $usuarioDao->recuperar($idAmigo); $idAmizade = $amizadeDao->gerarIdAmizade($usuarioAutenticado, $amigo); $amizadeRemovida = $amizadeDao->remover($idAmizade); print_r($amizadeRemovida->toArray()); $this->load->helper('notificacao_js'); $resposta = array('success' => true); $notificacoesFlash = create_notificacao_json('sucesso', 'Amizade Removida com Sucesso!'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } catch (cassandra_NotFoundException $e) { $resposta = array('success' => false); $notificacoesFlash = create_notificacao_json('erro', 'Falha Ao Remover Amizade!'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } echo $resposta; }
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; }
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; } }
public function salvar_configuracao() { 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 { $usuarioAtual = $this->autenticacao->getUsuarioAutenticado(); $dados_post = $this->input->post(); $usuarioAtual->getConfiguracao()->preencherPropriedades($dados_post); $usuarioAtual->salvarConfiguracao(); $this->autenticacao->setUsuarioAutenticado($usuarioAtual); $this->load->helper('notificacao_js'); $this->session->set_flashdata('notificacoesFlash', create_notificacao_json('sucesso', 'Seus dados profissionais foram salvos com sucesso!')); $json = create_json_feedback(true); } catch (Exception $e) { log_message('error', 'Erro ao tentar salvar configurações de usuário. ' . 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; }
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; }
private function _alterar($post) { $avaliacaoDao = WeLearn_DAO_DAOFactory::create('AvaliacaoDAO'); $avaliacao = $avaliacaoDao->recuperar($post['avaliacaoId']); $avaliacao->preencherPropriedades($post); $avaliacaoDao->salvar($avaliacao); $notificacoesFlash = create_notificacao_json('sucesso', 'A avaliação <em>"' . $avaliacao->getNome() . '"</em> foi salva com sucesso!'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); $response = Zend_Json::encode(array('idAvaliacao' => $avaliacao->getId())); return create_json_feedback(true, '', $response); }
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; }
public function _criar($post) { $aulaDao = WeLearn_DAO_DAOFactory::create('AulaDAO'); $aula = $aulaDao->recuperar($post['aulaId']); $paginaDao = WeLearn_DAO_DAOFactory::create('PaginaDAO'); $novaPagina = $paginaDao->criarNovo($post); $novaPagina->setAula($aula); $paginaDao->salvar($novaPagina); $dadosLista = array('listaPaginas' => array($novaPagina)); $foiPrimeiroAdicionado = $paginaDao->recuperarQtdTotalPorAula($aula) == 1; $response = Zend_Json::encode(array('primeiroAdicionado' => $foiPrimeiroAdicionado, 'htmlNovaPagina' => $this->template->loadPartial('lista', $dadosLista, 'curso/conteudo/pagina'), 'notificacao' => create_notificacao_array('sucesso', 'A página <em>"' . $novaPagina->getNome() . '"</em> foi adicionada com sucesso à aula <em>"' . $aula->getNome() . '"</em>!'))); if ($foiPrimeiroAdicionado) { $this->session->set_flashdata('notificacoesFlash', create_notificacao_json('sucesso', 'A página <em>"' . $novaPagina->getNome() . '"</em> foi adicionada com sucesso à aula <em>"' . $aula->getNome() . '"</em>!')); } return create_json_feedback(true, '', $response); }
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 sua avaliação sobre este curso foi enviada com sucesso! <br> Obrigado pela participação!'); break; case 'alterar': $json = $this->_alterar($this->input->post()); $notificacoesFlash = create_notificacao_json('sucesso', 'Os dados da avaliação foram alterados com sucesso!'); break; default: throw new WeLearn_Base_Exception('Ação inválida ao salvar!'); } $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } catch (Exception $e) { log_message('error', 'Ocorreu um erro ao tentar salvar review 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; }
public function aceitar($idConvite, $idRemetente, $idDestinatario, $view) { $this->load->helper('notificacao_js'); $conviteCadastradoDao = WeLearn_DAO_DAOFactory::create('ConviteCadastradoDAO'); $amizadeDao = WeLearn_DAO_DAOFactory::create('AmizadeUsuarioDAO'); try { $conviteRemovido = $conviteCadastradoDao->remover($idConvite); $idAmizade = $amizadeDao->gerarIdAmizade($conviteRemovido->getDestinatario(), $conviteRemovido->getRemetente()); $amizadeObj = $amizadeDao->recuperar($idAmizade); $amizadeObj->setStatus(WeLearn_Usuarios_StatusAmizade::AMIGOS); $amizadeDao->salvar($amizadeObj); if ($view == 'perfil') { $result = array('success' => true); $notificacoesFlash = create_notificacao_json('sucesso', 'Convite Aceito!'); } if ($view == 'lista') { $result = array('success' => true, 'notificacao' => create_notificacao_array('sucesso', 'Convite Aceito!')); } //enviar notificação ao usuário; $notificacao = new WeLearn_Notificacoes_NotificacaoRequisicaoAmizadeAceita(); $notificacao->setConvite($conviteRemovido); $notificacao->setDestinatario($conviteRemovido->getRemetente()); $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorCassandra()); $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorTempoReal()); $notificacao->notificar(); //fim da notificação; } catch (cassandra_NotFoundException $e) { $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO'); $Remetente = $usuarioDao->recuperar($idRemetente); $Destinatario = $usuarioDao->recuperar($idDestinatario); $UsuarioAutenticado = $this->autenticacao->getUsuarioAutenticado(); $amizadeObj = $amizadeDao->criarNovo(); $amizadeObj->setUsuario($Destinatario); $amizadeObj->setAmigo($Remetente); $saoAmigos = $amizadeDao->saoAmigos($amizadeObj->getUsuario(), $amizadeObj->getAmigo()); if ($view == 'perfil') { $usuario = $UsuarioAutenticado == $Destinatario ? $Remetente : $Destinatario; if ($saoAmigos == WeLearn_Usuarios_StatusAmizade::AMIGOS) { $result = array('success' => false, 'amigos' => true); $notificacoesFlash = create_notificacao_json('erro', 'O Convite Já foi Aceito ' . $usuario->getNome()); } else { $result = array('success' => false, 'amigos' => false); $notificacoesFlash = create_notificacao_json('erro', 'O Convite Foi Removido Por ' . $usuario->getNome()); } } if ($view == 'lista') { $usuario = $UsuarioAutenticado == $Destinatario ? $Remetente : $Destinatario; if ($saoAmigos == WeLearn_Usuarios_StatusAmizade::AMIGOS) { $result = array('success' => false, 'notificacao' => create_notificacao_array('erro', 'O Convite Já foi Aceito Por ' . $usuario->getNome())); } else { $result = array('success' => false, 'notificacao' => create_notificacao_array('erro', 'O Convite Foi Removido por ' . $usuario->getNome())); } } } if ($view == 'perfil') { $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } echo Zend_Json::encode($result); }
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'); switch ($this->input->post('acao')) { case 'criar': $json = $this->_adicionar($this->input->post()); $notificacoesFlash = create_notificacao_json('sucesso', 'O recurso <em>"' . $this->input->post('nome') . '"</em> foi criado com sucesso! O arquivo já está disponível para os alunos.'); break; case 'alterar': $json = $this->_alterar($this->input->post()); $notificacoesFlash = create_notificacao_json('sucesso', 'O recurso <em>"' . $this->input->post('nome') . '"</em> foi salvo com sucesso!'); break; default: throw new WeLearn_Base_Exception("Ação inválida ao salvar recurso"); } $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } catch (Exception $e) { log_message('error', 'Erro ao tentar salvar recurso: ' . 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 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; }
public function criar_timeline($idPerfil) { $this->load->helper('notificacao_js'); $usuarioPerfil = WeLearn_DAO_DAOFactory::create('UsuarioDAO')->recuperar($idPerfil); $usuarioAutenticado = $this->autenticacao->getUsuarioAutenticado(); if ($usuarioAutenticado->getId() == $usuarioPerfil->getId() || $usuarioAutenticado->getId() != $usuarioPerfil->getId() && $usuarioPerfil->getConfiguracao()->getPrivacidadeCompartilhamento() == WeLearn_Usuarios_PrivacidadeCompartilhamento::HABILITADO) { set_json_header(); $isValid = false; $tipo = $this->input->post('tipo-feed'); $this->load->library('form_validation'); $this->form_validation->set_rules('conteudo-feed', 'conteudo-feed', 'required'); if ($tipo != WeLearn_Compartilhamento_TipoFeed::STATUS) { $this->form_validation->set_rules('descricao-feed', 'descricao-feed', 'callback_validar_descricao'); } if ($this->form_validation->run() === false) { $json = create_json_feedback(false, validation_errors_json()); exit($json); } else { switch ($tipo) { case WeLearn_Compartilhamento_TipoFeed::VIDEO: $isValid = $this->validar_video(); if (!$isValid) { $notificacoesFlash = create_notificacao_json('erro', 'A url do video enviado não é valida, verifique se a url está correta.'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); log_message('error', 'A url do video enviado nao é valida'); $json = create_json_feedback(false); } break; case WeLearn_Compartilhamento_TipoFeed::IMAGEM: $isValid = $this->validar_imagem(); if (!$isValid) { $notificacoesFlash = create_notificacao_json('erro', 'A url da imagem enviada não é valida, verifique se a url está correta.'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); log_message('error', 'A url da imagem enviada nao é valida'); $json = create_json_feedback(false); } break; case WeLearn_Compartilhamento_TipoFeed::LINK: $isValid = $this->validar_url(); if (!$isValid) { $notificacoesFlash = create_notificacao_json('erro', 'A url da imagem enviada não é valida, verifique se a url está correta.'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); log_message('error', 'A url enviada nao é valida'); $json = create_json_feedback(false); } break; case WeLearn_Compartilhamento_TipoFeed::STATUS: $isValid = true; if (!$isValid) { $notificacoesFlash = create_notificacao_json('erro', 'A url da imagem enviada não é valida, verifique se a url está correta.'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); log_message('error', 'O status enviado nao é valida'); $json = create_json_feedback(false); } break; } if ($isValid) { $feedDao = WeLearn_DAO_DAOFactory::create('FeedDAO'); $feed = $feedDao->criarNovo(); $criador = $this->autenticacao->getUsuarioAutenticado(); $conteudo = $this->input->post('conteudo-feed'); if ($tipo != WeLearn_Compartilhamento_TipoFeed::STATUS) { $descricao = $this->input->post('descricao-feed'); $feed->setDescricao($descricao); } $feed->setConteudo($conteudo); $feed->setTipo($tipo); $feed->setCriador($criador); $feed->setDataEnvio(time()); try { $feedDao->salvarTimeLine($feed, $usuarioPerfil); $notificacoesFlash = create_notificacao_json('sucesso', 'Feed enviado com sucesso!'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); $json = create_json_feedback(true); //Notificar ao usuário $notificacao = new WeLearn_Notificacoes_NotificacaoCompartilhamentoPerfil(); $notificacao->setCompartilhamento($feed); $notificacao->setDestinatario($usuarioPerfil); $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorCassandra()); $notificacao->adicionarNotificador(new WeLearn_Notificacoes_NotificadorTempoReal()); $notificacao->notificar(); //fim da notificação. } catch (cassandra_NotFoundException $e) { $json = create_json_feedback(false); } } } } else { $notificacoesFlash = create_notificacao_json('erro', 'As configurações de privacidade não permitem que o compartilhamento seja enviado!'); $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); $json = create_json_feedback(false); } echo $json; }
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; }
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'); switch ($this->input->post('acao')) { case 'criar': $json = $this->_criarEnquete($this->input->post()); $notificacoesFlash = create_notificacao_json('sucesso', 'A nova enquete foi criada com sucesso, na verdade você já está nela!<br/>Caso pense em alguma alteração faça-a o mais rápido possível!'); break; case 'alterar': $json = $this->_alterarEnquete($this->input->post()); $notificacoesFlash = create_notificacao_json('sucesso', 'As alterações na enquete foram salvas com sucesso!'); break; default: throw new WeLearn_Base_Exception('Opção de salvamento inválida!'); } $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash); } catch (Exception $e) { log_message('error', 'Erro ao tentar salvar enquete: ' . 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 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; } }
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; }
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; }