Browse Source

Ajustando o fale conosco para as novas requisições do escolamodelows

master
Matheus456 6 years ago
parent
commit
502ea3fa47
  1. 129
      amd/src/config.js
  2. 6
      db/access.php
  3. 107
      index.php
  4. 48
      proxy.php
  5. 8
      searchform.php

129
amd/src/config.js

@ -1,18 +1,21 @@
define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , function($) { define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , function($) {
var exports = {}; var exports = {};
var answered = 1;
var school = 'SSL';
var init = exports.init = function() { var init = exports.init = function() {
// Altera entre mensagens respondidas e não respondidas
$( "#id_situacao" ).change(function() { $( "#id_situacao" ).change(function() {
alert( "Handler for .change() called." ); answered = $(this).val();
$("#id_situacao").val(answered);
tabelaContatos.ajax.url('proxy.php?schoolInitials=' + school +' + &answered=' + answered)
tabelaContatos.ajax.reload();
}); });
// Obtém dados de todas as conversas
var tabelaContatos = $('#tabela_contatos').DataTable({ var tabelaContatos = $('#tabela_contatos').DataTable({
//dom: "Bfrtip",
ajax: { ajax: {
url: "proxy.php", url: "proxy.php?schoolInitials=" + school + "&answered=" + 0,
// dataType: "json",
// contentType: "aplication/json",
dataSrc:"" dataSrc:""
}, },
columns: [ columns: [
@ -20,7 +23,30 @@ define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , functi
{ data: "titulo" }, { data: "titulo" },
{ data: "cpf" } { data: "cpf" }
], ],
//select: true // Passando o datatable para português
"oLanguage": {
"sEmptyTable": "Nenhum registro encontrado",
"sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros",
"sInfoEmpty": "Mostrando 0 até 0 de 0 registros",
"sInfoFiltered": "(Filtrados de _MAX_ registros)",
"sInfoPostFix": "",
"sInfoThousands": ".",
"sLengthMenu": "_MENU_ resultados por página",
"sLoadingRecords": "Carregando...",
"sProcessing": "Processando...",
"sZeroRecords": "Nenhum registro encontrado",
"sSearch": "Pesquisar",
"oPaginate": {
"sNext": "Próximo",
"sPrevious": "Anterior",
"sFirst": "Primeiro",
"sLast": "Último"
},
"oAria": {
"sSortAscending": ": Ordenar colunas de forma ascendente",
"sSortDescending": ": Ordenar colunas de forma descendente"
}
},
}); });
$( "#tabs" ).tabs({ active: 0 }); $( "#tabs" ).tabs({ active: 0 });
@ -28,54 +54,59 @@ define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , functi
$('#tabela_contatos tbody').on( 'click', 'tr', function () { $('#tabela_contatos tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) { if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected'); $(this).removeClass('selected');
} }
else { else {
tabelaContatos.$('tr.selected').removeClass('selected'); tabelaContatos.$('tr.selected').removeClass('selected');
$(this).addClass('selected'); $(this).addClass('selected');
} }
data = tabelaContatos.row(this).data();
getMessagesFromContact(); getMessagesFromContact(data);
} ); } );
} }
/* // Obtém todas as trocas de mensagens relacionadas a um determinado contato no Fale Conosco
Obtém todas as trocas de mensagens relacionadas a um determinado contato no Fale Conosco var getMessagesFromContact = exports.getMessagesFromContact = function(data_conversation) {
*/
var getMessagesFromContact = exports.getMessagesFromContact = function(contactID) {
$.ajax({ $.ajax({
url: "proxy.php?contactID=" + contactID, url: "proxy.php?conversationID=" + data_conversation.id_conversa,
async: true, type: "POST",
dataType: 'json', dataType: 'json',
success: function (data) { success: function (data) {
var mensagens = ""; var mensagens = "";
for (var i = 0, len = data.length; i < len; i++) { for (var i = 0, len = data.length; i < len; i++) {
var desc = data[i].body; var desc = data[i].body;
arrayReturn.push([ data[i].id, data[i].name, data[i].email]); arrayReturn.push([ data[i].id, data[i].name, data[i].email]);
if (data[i].aluno != false) {
mensagens += '<div class="panel panel-success"> ';
}
else {
mensagens += '<div class="panel panel-primary"> ';
}
mensagens += mensagens +=
'<div class="panel panel-default"> '+
' <div class="panel-heading">'+ ' <div class="panel-heading">'+
' <h3 class="panel-title">' + data[i].description + '</h3>'+ ' <h3 class="panel-title">' + data[i].cpf + '</h3>'+
' </div>'+ ' </div>'+
' <div class="panel-body">'+ ' <div class="panel-body">'+
data[i].description + data[i].texto_mensagem +
' </div>'+ ' </div><div class="text-right">'+
'</div>'; Date(data[i].data_mensagem) +
'</div></div>';
}; };
mensagens += mensagens +=
'<div class="form-group">'+ '<div class="form-group">'+
'<label for="comment">Sua resposta:</label>'+ '<label for="comment">Mensagem:</label>'+
'<textarea class="form-control" rows="5" id="comment"></textarea>'+ '<textarea class="form-control" rows="5" id="comment"></textarea>'+
'</div>' + '</div>' +
'<button type="button" id="sendMessage" class="btn">Basic</button>'; '<button type="button" id="sendMessage" class="btn">Enviar</button>';
$('#mensagens').html(mensagens); $('#mensagens').html(mensagens);
$('#sendMessage').click(function (){ $('#sendMessage').click(function (){
description = $('#comment').val();
$('#comment').attr('value', "")
$.ajax({ $.ajax({
url: "proxy.php?addMessage=1", url: "proxy.php?addMessage=" + data_conversation.id_conversa + "&description=" + description,
data: "Teste", //ur data to be sent to server
contentType: "application/json; charset=utf-8", contentType: "application/json; charset=utf-8",
type: "POST", type: "post",
dataType: 'json',
success: function (data) { success: function (data) {
alert("Mensagem enviada!"); alert("Mensagem enviada!");
$( "#tabs" ).tabs({ active: 0 }); $( "#tabs" ).tabs({ active: 0 });
@ -90,57 +121,15 @@ define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , functi
}); });
}; };
/* // Obtém dados de todos os contatos do Fale Conosco
Obtém dados de todos os contatos do Fale Conosco
*/
var getTableContacts = exports.getTableContacts = function() { var getTableContacts = exports.getTableContacts = function() {
$( "#tabs" ).tabs(); $( "#tabs" ).tabs();
$('ul.tabs li').click(function(){ $('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab'); var tab_id = $(this).attr('data-tab');
$('ul.tabs li .tab-content').removeClass('current');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current'); $(this).addClass('current');
$("#"+tab_id).addClass('current'); $("#"+tab_id).addClass('current');
}) })
/*
var arrayReturn = [];
$.ajax({
url: "proxy.php",
async: true,
dataType: 'json',
success: function (data) {
for (var i = 0, len = data.length; i < len; i++) {
var desc = data[i].body;
arrayReturn.push([ data[i].id, data[i].name, data[i].email]);
}
tabela = $('#tabela_contatos').DataTable(
//{"aaData": arrayReturn}
{ajax: "proxy.php"}
);
//$( "#tabs" ).tabs({ active: 0 });
$('#tabela_contatos tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
}
else {
tabela.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
getMessagesFromContact();
} );
}
});
*/
}; };
return exports; return exports;

6
db/access.php

@ -5,7 +5,10 @@
'captype' => 'write', 'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM, 'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array( 'archetypes' => array(
'user' => CAP_ALLOW // 'user' => CAP_ALLOW
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW,
), ),
'clonepermissionsfrom' => 'moodle/my:manageblocks' 'clonepermissionsfrom' => 'moodle/my:manageblocks'
@ -24,4 +27,3 @@
'clonepermissionsfrom' => 'moodle/site:manageblocks' 'clonepermissionsfrom' => 'moodle/site:manageblocks'
), ),
); );

107
index.php

@ -18,6 +18,7 @@ $PAGE->requires->css(new moodle_url('https://code.jquery.com/ui/1.12.1/themes/ba
$PAGE->requires->css(new moodle_url('https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css')); $PAGE->requires->css(new moodle_url('https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css'));
$PAGE->set_context($context); $PAGE->set_context($context);
// Get data // Get data
@ -25,29 +26,9 @@ $strtitle = get_string('fale_conosco', 'block_fale_conosco');
$user = $USER; $user = $USER;
//$icon = $OUTPUT->pix_icon('print', get_string('print', 'block_fale_conosco'), 'block_fale_conosco'); //$icon = $OUTPUT->pix_icon('print', get_string('print', 'block_fale_conosco'), 'block_fale_conosco');
global $DB, $CFG; global $DB, $CFG, $USER;
/*
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco';
$response = \Httpful\Request::get($uri)
//->sendsJson()
//->body('{"school_initial": "SSL"}')
->expectsJson()
->send();
$data=$response->body;
html_writer::span("<p>Quantidade" . count($data) . '</p>');
// Print the header
$PAGE->navbar->add($strtitle);
$PAGE->set_title($strtitle);
$PAGE->set_heading($strtitle);
*/
//$PAGE->requires->css('/blocks/fale_conosco/printstyle.css');
echo $OUTPUT->header(); echo $OUTPUT->header();
// Print concluded courses // Print concluded courses
@ -65,92 +46,15 @@ if ($mform->is_cancelled()) {
} else { } else {
// this branch is executed if the form is submitted but the data doesn't validate and the form should be redisplayed // this branch is executed if the form is submitted but the data doesn't validate and the form should be redisplayed
// or on the first display of the form. // or on the first display of the form.
//Set default data (if any)
//$mform->set_data($toform);
//displays the form
$mform->display(); $mform->display();
} }
?> ?>
<!--
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/r/dt/dt-1.10.9/datatables.min.css"/>
-->
<style>
/*
body{
margin-top: 100px;
font-family: 'Trebuchet MS', serif;
line-height: 1.6
}
.container{
width: 800px;
margin: 0 auto;
}
ul.tabs{
margin: 0px;
padding: 0px;
list-style: none;
}
ul.tabs li{
background: none;
color: #222;
display: inline-block;
padding: 10px 15px;
cursor: pointer;
}
ul.tabs li.current{
background: #ededed;
color: #222;
}
.tab-content{
display: none;
background: #ededed;
padding: 15px;
}
.tab-content.current{
display: inherit;
}
*/
</style>
<script> <script>
var arrayReturn = []; var arrayReturn = [];
/*$.ajax({
url: "http://jsonplaceholder.typicode.com/posts",
async: true,
dataType: 'json',
success: function (data) {
for (var i = 0, len = data.length; i < len; i++) {
var desc = data[i].body;
arrayReturn.push([ data[i].userId, '<a href="http://google.com" target="_blank">'+data[i].title+'</a>', desc.substring(0, 12)]);
}
alert('loaded ' + data.length);
inittable(arrayReturn);
}
});
function inittable(data) {
//console.log(data);
$('#photos').DataTable( {
"aaData": data
} );
}*/
</script> </script>
<?php <?php
$PAGE->requires->js_call_amd('block_fale_conosco/config', 'init'); $PAGE->requires->js_call_amd('block_fale_conosco/config', 'init');
//$PAGE->requires->js_call_amd('block_fale_conosco/config', 'getTableContacts'); $PAGE->requires->js_call_amd('block_fale_conosco/config', 'getTableContacts');
?> ?>
<div id="tabs"> <div id="tabs">
@ -163,14 +67,15 @@ if ($mform->is_cancelled()) {
<thead> <thead>
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Usuário</th> <th>Assunto</th>
<th>E-mail</th> <th>CPF</th>
</tr> </tr>
</thead> </thead>
</table> </table>
</div> </div>
<div id="tabs-2"> <div id="tabs-2">
<div id="mensagens"></div> <div id="mensagens"></div>
</table>
</div> </div>
</div> </div>

48
proxy.php

@ -1,33 +1,42 @@
<?php <?php
include('httpful.phar'); include('httpful.phar');
require_once("../../config.php");
header("Content-Type: application/json"); header("Content-Type: application/json");
if(isset($_GET["contactID"])) { if(isset($_GET["conversationID"])) {
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/mensagens_conversa'; $id = intval($_GET['conversationID']);
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/mensagens';
$response = \Httpful\Request::post($uri) $response = \Httpful\Request::post($uri)
->sendsJson() ->sendsJson()
->body('{"conversation_id": "1"}') ->body('{"conversation_id": "' . $id . '"}')
//->expectsJson()
->send(); ->send();
} elseif(isset($_REQUEST["addMessage"])) { } elseif(isset($_REQUEST["addMessage"])) {
$id = intval($_GET['addMessage']);
$cpf = $USER->username;
$description = $_GET['description'];
// ***Pega o contexto do curso e verifica o papel do usuário
// $cContext = context_course::instance(3);
// $isStudent = current(get_user_roles($cContext, $USER->id))->shortname =='student'? 'true' : 'false';
// ***Verifica se o usuário assume o papel de estudante em algum curso
// $isStudent = user_has_role_assignment($USER->id, 5);
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/adicionar'; $uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/adicionar';
$response = \Httpful\Request::post($uri) $response = \Httpful\Request::post($uri)
->sendsJson() ->sendsJson()
->body('{ ->body('{
"name": "Matheus", "name": "' . $USER->username . '",
"email": "garcia.figueiredo@gmail.com", "email": "' . $USER->email . '",
"cpf": "05272886674", "cpf": "' . $cpf . '",
"description": "Palmeiras nunca vai ganhar um mundial", "description": "' . $description . '",
"date": "2018-08-01", "is_student": false,
"course_id": "1", "conversation_id": "' . $id . '"
"course_category_id": "1" ,
"school_initials": "SSL",
"id_conversation": "1"
}') }')
->send(); ->send();
} } elseif(isset($_REQUEST["schoolInitials"])) {
else { $not_answered = intval($_GET['answered'])== 0 ? 'false':'true';
$not_answered = trim($not_answered, '"');
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/conversa'; $uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/conversa';
$response = \Httpful\Request::post($uri) $response = \Httpful\Request::post($uri)
->sendsJson() ->sendsJson()
@ -35,10 +44,9 @@ else {
'{ '{
"school_initials": "SSL", "school_initials": "SSL",
"page" : "1", "page" : "1",
"limit": "10" "limit": "2000",
}' "not_answered": '. $not_answered .'
) }')
//->expectsJson()
->send(); ->send();
} }

8
searchform.php

@ -3,7 +3,6 @@
require_once("$CFG->libdir/formslib.php"); require_once("$CFG->libdir/formslib.php");
class searchform extends moodleform { class searchform extends moodleform {
function definition() { function definition() {
global $CFG; global $CFG;
@ -11,12 +10,13 @@ class searchform extends moodleform {
$attributes=array('size'=>'20'); $attributes=array('size'=>'20');
$selSituacao = $mform->addElement('select', 'situacao', get_string('situacao', 'block_fale_conosco'), $selSituacao = $mform->addElement('select', 'situacao', get_string('situacao', 'block_fale_conosco'),
array('Não respondidas', 'Respondidas', 'Pendentes'), $attributes); array('Não respondidas', 'Respondidas'), $attributes);
$selSituacao->setMultiple(false); $selSituacao->setMultiple(false);
$attributes=array('size'=>'20'); $attributes=array('size'=>'20');
$txtUsuario = $mform->addElement('text', 'usuario', get_string('usuario', 'block_fale_conosco'), $attributes); // $txtUsuario = $mform->addElement('text', 'usuario', get_string('usuario', 'block_fale_conosco'), $attributes);
// $mform->addElement('button', 'Atualizar', get_string("atualizar", "block_fale_conosco"));
$mform->addElement('button', 'Atualizar', get_string("atualizar", "block_fale_conosco"));
} }
} }
Loading…
Cancel
Save