Browse Source

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

master
Matheus456 6 years ago
parent
commit
502ea3fa47
  1. 271
      amd/src/config.js
  2. 6
      block_fale_conosco.php
  3. 16
      db/access.php
  4. 113
      index.php
  5. 64
      proxy.php
  6. 32
      searchform.php

271
amd/src/config.js

@ -1,147 +1,136 @@
define(['jquery', 'js/jquery.dataTables.min.js', 'js/jquery-ui.min.js'] , function($) {
var exports = {};
var init = exports.init = function() {
$( "#id_situacao" ).change(function() {
alert( "Handler for .change() called." );
});
var tabelaContatos = $('#tabela_contatos').DataTable({
//dom: "Bfrtip",
ajax: {
url: "proxy.php",
// dataType: "json",
// contentType: "aplication/json",
dataSrc:""
},
columns: [
{ data: "id_conversa" },
{ data: "titulo" },
{ data: "cpf" }
],
//select: true
});
$( "#tabs" ).tabs({ active: 0 });
$('#tabela_contatos tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
}
else {
tabelaContatos.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
getMessagesFromContact();
} );
}
/*
Obtém todas as trocas de mensagens relacionadas a um determinado contato no Fale Conosco
*/
var getMessagesFromContact = exports.getMessagesFromContact = function(contactID) {
$.ajax({
url: "proxy.php?contactID=" + contactID,
async: true,
var exports = {};
var answered = 1;
var school = 'SSL';
var init = exports.init = function() {
// Altera entre mensagens respondidas e não respondidas
$( "#id_situacao" ).change(function() {
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({
ajax: {
url: "proxy.php?schoolInitials=" + school + "&answered=" + 0,
dataSrc:""
},
columns: [
{ data: "id_conversa" },
{ data: "titulo" },
{ data: "cpf" }
],
// 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 });
$('#tabela_contatos tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
}
else {
tabelaContatos.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
data = tabelaContatos.row(this).data();
getMessagesFromContact(data);
} );
}
// Obtém todas as trocas de mensagens relacionadas a um determinado contato no Fale Conosco
var getMessagesFromContact = exports.getMessagesFromContact = function(data_conversation) {
$.ajax({
url: "proxy.php?conversationID=" + data_conversation.id_conversa,
type: "POST",
dataType: 'json',
success: function (data) {
var mensagens = "";
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]);
if (data[i].aluno != false) {
mensagens += '<div class="panel panel-success"> ';
}
else {
mensagens += '<div class="panel panel-primary"> ';
}
mensagens +=
' <div class="panel-heading">'+
' <h3 class="panel-title">' + data[i].cpf + '</h3>'+
' </div>'+
' <div class="panel-body">'+
data[i].texto_mensagem +
' </div><div class="text-right">'+
Date(data[i].data_mensagem) +
'</div></div>';
};
mensagens +=
'<div class="form-group">'+
'<label for="comment">Mensagem:</label>'+
'<textarea class="form-control" rows="5" id="comment"></textarea>'+
'</div>' +
'<button type="button" id="sendMessage" class="btn">Enviar</button>';
$('#mensagens').html(mensagens);
$('#sendMessage').click(function (){
description = $('#comment').val();
$('#comment').attr('value', "")
$.ajax({
url: "proxy.php?addMessage=" + data_conversation.id_conversa + "&description=" + description,
contentType: "application/json; charset=utf-8",
type: "post",
dataType: 'json',
success: function (data) {
var mensagens = "";
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]);
mensagens +=
'<div class="panel panel-default"> '+
' <div class="panel-heading">'+
' <h3 class="panel-title">' + data[i].description + '</h3>'+
' </div>'+
' <div class="panel-body">'+
data[i].description +
' </div>'+
'</div>';
};
mensagens +=
'<div class="form-group">'+
'<label for="comment">Sua resposta:</label>'+
'<textarea class="form-control" rows="5" id="comment"></textarea>'+
'</div>' +
'<button type="button" id="sendMessage" class="btn">Basic</button>';
$('#mensagens').html(mensagens);
$('#sendMessage').click(function (){
$.ajax({
url: "proxy.php?addMessage=1",
data: "Teste", //ur data to be sent to server
contentType: "application/json; charset=utf-8",
type: "POST",
success: function (data) {
alert("Mensagem enviada!");
$( "#tabs" ).tabs({ active: 0 });
},
error: function (x, y, z) {
alert(x.responseText +" " +x.status);
}
});
});
$( "#tabs" ).tabs({ active: 1 });
}
});
};
/*
Obtém dados de todos os contatos do Fale Conosco
*/
var getTableContacts = exports.getTableContacts = function() {
$( "#tabs" ).tabs();
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).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();
} );
alert("Mensagem enviada!");
$( "#tabs" ).tabs({ active: 0 });
},
error: function (x, y, z) {
alert(x.responseText +" " +x.status);
}
});
});
*/
};
return exports;
});
$( "#tabs" ).tabs({ active: 1 });
}
});
};
// Obtém dados de todos os contatos do Fale Conosco
var getTableContacts = exports.getTableContacts = function() {
$( "#tabs" ).tabs();
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li .tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
})
};
return exports;
});

6
block_fale_conosco.php

@ -9,11 +9,11 @@ class block_fale_conosco extends block_base {
if ($this->content !== null) {
return $this->content;
}
$this->content = new stdClass;
$this->content->text = 'The content of our SimpleHTML block!';
$this->content->footer = 'Footer here...';
return $this->content;
}
}
}

16
db/access.php

@ -1,27 +1,29 @@
<?php
$capabilities = array(
'block/fale_conosco:myaddinstance' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'user' => CAP_ALLOW
// 'user' => CAP_ALLOW
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW,
),
'clonepermissionsfrom' => 'moodle/my:manageblocks'
),
'block/fale_conosco:addinstance' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:manageblocks'
),
);

113
index.php

@ -10,7 +10,7 @@ if (isguestuser()) {
}
// Prepare page
$context = context_system::instance();
$context = context_system::instance();
$PAGE->set_pagelayout('standard');
$PAGE->set_url('/blocks/fale_conosco/index.php');
$PAGE->requires->css(new moodle_url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'));
@ -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->set_context($context);
// Get data
@ -25,36 +26,16 @@ $strtitle = get_string('fale_conosco', 'block_fale_conosco');
$user = $USER;
//$icon = $OUTPUT->pix_icon('print', get_string('print', 'block_fale_conosco'), 'block_fale_conosco');
global $DB, $CFG;
/*
$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>');
global $DB, $CFG, $USER;
// 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();
// Print concluded courses
echo $OUTPUT->box_start('generalbox boxaligncenter');
echo $OUTPUT->heading(get_string('fale_conosco', 'block_fale_conosco'));
//Instantiate simplehtml_form
//Instantiate simplehtml_form
$mform = new searchform();
//Form processing and displaying is done here
@ -65,92 +46,15 @@ if ($mform->is_cancelled()) {
} else {
// 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.
//Set default data (if any)
//$mform->set_data($toform);
//displays the form
$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>
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
} );
}*/
var arrayReturn = [];
</script>
<?php
$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">
@ -163,14 +67,15 @@ if ($mform->is_cancelled()) {
<thead>
<tr>
<th>ID</th>
<th>Usuário</th>
<th>E-mail</th>
<th>Assunto</th>
<th>CPF</th>
</tr>
</thead>
</table>
</div>
<div id="tabs-2">
<div id="mensagens"></div>
</table>
</div>
</div>

64
proxy.php

@ -1,44 +1,52 @@
<?php
include('httpful.phar');
require_once("../../config.php");
header("Content-Type: application/json");
if(isset($_GET["contactID"])) {
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/mensagens_conversa';
if(isset($_GET["conversationID"])) {
$id = intval($_GET['conversationID']);
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/mensagens';
$response = \Httpful\Request::post($uri)
->sendsJson()
->body('{"conversation_id": "1"}')
//->expectsJson()
->body('{"conversation_id": "' . $id . '"}')
->send();
} 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';
$response = \Httpful\Request::post($uri)
->sendsJson()
->body('{
"name": "Matheus",
"email": "garcia.figueiredo@gmail.com",
"cpf": "05272886674",
"description": "Palmeiras nunca vai ganhar um mundial",
"date": "2018-08-01",
"course_id": "1",
"course_category_id": "1" ,
"school_initials": "SSL",
"id_conversation": "1"
}')
"name": "' . $USER->username . '",
"email": "' . $USER->email . '",
"cpf": "' . $cpf . '",
"description": "' . $description . '",
"is_student": false,
"conversation_id": "' . $id . '"
}')
->send();
}
else {
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/conversa';
$response = \Httpful\Request::post($uri)
->sendsJson()
->body(
'{
"school_initials": "SSL",
"page" : "1",
"limit": "10"
}'
)
//->expectsJson()
} elseif(isset($_REQUEST["schoolInitials"])) {
$not_answered = intval($_GET['answered'])== 0 ? 'false':'true';
$not_answered = trim($not_answered, '"');
$uri = 'https://escolamodelows.interlegis.leg.br/api/v1/fale_conosco/conversa';
$response = \Httpful\Request::post($uri)
->sendsJson()
->body(
'{
"school_initials": "SSL",
"page" : "1",
"limit": "2000",
"not_answered": '. $not_answered .'
}')
->send();
}

32
searchform.php

@ -1,22 +1,22 @@
<?php
require_once("$CFG->libdir/formslib.php");
class searchform extends moodleform {
function definition() {
global $CFG;
$mform = $this->_form; // Don't forget the underscore!
$attributes=array('size'=>'20');
$selSituacao = $mform->addElement('select', 'situacao', get_string('situacao', 'block_fale_conosco'),
array('Não respondidas', 'Respondidas', 'Pendentes'), $attributes);
$selSituacao->setMultiple(false);
function definition() {
global $CFG;
$mform = $this->_form; // Don't forget the underscore!
$attributes=array('size'=>'20');
$selSituacao = $mform->addElement('select', 'situacao', get_string('situacao', 'block_fale_conosco'),
array('Não respondidas', 'Respondidas'), $attributes);
$selSituacao->setMultiple(false);
$attributes=array('size'=>'20');
$txtUsuario = $mform->addElement('text', 'usuario', get_string('usuario', 'block_fale_conosco'), $attributes);
$attributes=array('size'=>'20');
// $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