Commit ab822386 by David Villalba

Conversaciones con los nutricionistas.

parent d599ffba
......@@ -20,6 +20,12 @@ class Controller_Consultanutricionista_Index extends \Controller_App{
parent::before();
}
/**
*
* Obtenemos todas las conversaciones
*
* @return Response
*/
public function get_index(){
$view = View::forge('consultas/index.twig');
......@@ -30,11 +36,21 @@ class Controller_Consultanutricionista_Index extends \Controller_App{
//Pasar la leyenda para la info funcionamiento de la página
$view->leyenda = "En esta página puedes ver el listado de consultas realizadas y crear una nueva. Si el estado de la consulta es 'respuesta', significa que el nutricionista ha respondido. Si pulsas sobre la consulta podrás ver los detalles de la conversación y responder";
$conversations = $this->ws_conversations("conversation/0");
$view->conversations = json_decode(json_encode($conversations), true);
return Response::forge($view);
}
public function get_ver(){
/**
*
* Vemos detalle de la conversación
*
* @param $id
* @return Response
*/
public function get_ver($id){
$view = View::forge('consultas/ver.twig');
......@@ -44,6 +60,19 @@ class Controller_Consultanutricionista_Index extends \Controller_App{
//Pasar la leyenda para la info funcionamiento de la página
$view->leyenda = "Aquí puedes consultar el hilo de la consulta y responder a tu nutricionista.";
$conversation = $this->ws_conversations("conversation/$id");
$view->conversation = json_decode(json_encode($conversation), true);
return Response::forge($view);
}
/**
* Creamos o añadimos mensajes a una conversación.
*/
public function post_update(){
return $this->ws_conversation_message_put(\Input::post('id',"0"),\Input::post()) ? Response::redirect("consultas-nutricionista") : Response::redirect_back();
}
}
\ No newline at end of file
......@@ -159,5 +159,30 @@ trait Trait_InutraliaWS {
return json_decode($this->request_generic($url));
}
public function ws_conversations($url)
{
return json_decode($this->request_generic($url));
}
/**
* Reques conversation put
*
* @param $data
* @return mixed
*/
public function ws_conversation_message_put($id, $data){
$data_json = json_encode($data);
$extra_options = array(
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => $data_json
);
return json_decode($this->request_generic('conversation'.DS.$id,"post",1,$extra_options,array('Content-Length: ' . strlen($data_json))));
}
}
\ No newline at end of file
......@@ -65,7 +65,8 @@ return array(
//CONSULTAS NUTRICIONISTA
'consultas-nutricionista' => 'consultanutricionista/index',
'consultas-nutricionista/ver' => 'consultanutricionista/index/ver',
'consultas-nutricionista/ver/:id' => 'consultanutricionista/index/ver/$1',
'consultas-nutricionista/update' => 'consultanutricionista/index/update',
......
......@@ -11,7 +11,7 @@
<!--box con titulos de columnas-->
<div class="row bg-color-other whitecolor hidden-xs hidden-sm mt30 p10">
<div class="col-xs-10">
<div class="col-md-6">
<div class="col-md-4">
<label>Asunto</label>
</div>
<div class="col-md-3">
......@@ -20,72 +20,42 @@
<div class="col-md-3">
<label>Estado</label>
</div>
<div class="col-md-2">
<label>Leída</label>
</div>
</div>
<div class="col-xs-2"></div>
</div>
{# {% for i in items %} #}
{% for c in conversations %}
<!--item lista, una consulta pendiente-->
<div class="pointer">
<a href="{{ url('consultas-nutricionista/ver')}}">
<a href="{{ url('consultas-nutricionista/ver/'~c.id)}}">
<div class="row item-list-style">
<div class="col-xs-10">
<div class="col-md-6">
<p>Lorem ipsum daet asf adsfasd asfasdf afasdf...</p>
<div class="col-md-4">
<p>{{ c.subject }}</p>
</div>
<div class="col-md-3">
<p><i class="fa fa-calendar"></i> 12/04/2019</p>
<p><i class="fa fa-calendar"></i> {{ c.created_at|date("d/m/Y") }} <br> <i class="fa fa-clock-o"></i> {{ c.created_at|date("H:i:s") }} </p>
</div>
<div class="col-md-3">
<p class="color-lista-compra"><i class="fa fa-clock-o"></i> Pendiente</p>
<p class="color-lista-compra"> {{ c.state.ds }}</p>
</div>
</div>
<div class="col-xs-2 text-right"><i class="fa fa-angle-right"></i></div>
</div>
</a>
</div>
<!--item lista, una consulta estado leida-->
<div class="pointer">
<a href="{{ url('consultas-nutricionista/ver')}}">
<div class="row item-list-style">
<div class="col-xs-10">
<div class="col-md-6">
<p>Lorem ipsum daet asf adsfasd asfasdf afasdf...</p>
</div>
<div class="col-md-3">
<p><i class="fa fa-calendar"></i> 12/04/2019</p>
</div>
<div class="col-md-3">
<p class="color-perfil"><i class="fa fa-check"></i>Leída</p>
</div>
</div>
<div class="col-xs-2 text-right"><i class="fa fa-angle-right"></i></div>
</div>
</a>
</div>
<!--item lista, una consulta estado respondida-->
<div class="pointer">
<a href="{{ url('consultas-nutricionista/ver')}}">
<div class="row item-list-style">
<div class="col-xs-10">
<div class="col-md-6">
<p>Lorem ipsum daet asf adsfasd asfasdf afasdf...</p>
</div>
<div class="col-md-3">
<p><i class="fa fa-calendar"></i> 12/04/2019</p>
</div>
<div class="col-md-3">
<p class="color-menus-saludables"><i class="fa fa-envelope"></i> Respuesta</p>
<div class="col-md-2">
{% if c.read == "S" %}
<p class="color-perfil"><i class="fa fa-check"></i></p>
{% else %}
<p style="color: red"><i class="fa fa-remove"></i> No </p>
{% endif %}
</div>
</div>
<div class="col-xs-2 text-right"><i class="fa fa-angle-right"></i></div>
</div>
</a>
</div>
{#{% endfor %}#}
{% endfor %}
</div>
......@@ -14,15 +14,16 @@
</div>
<div class="content pb40 mt40">
<form>
<form action="{{ url("consultas-nutricionista/update") }}" method="post">
<label>Asunto</label>
<input type="text" class="form-control" name="subject" id="subject" value=""/>
<label>Consulta</label>
<textarea rows="5" class="form-control" name="subject" id="body" value=""></textarea>
<textarea rows="5" class="form-control" name="message"></textarea>
<div class="mt20">
<a class="btn btn-custom btn-other"><i class="fa fa-plus"></i> AÑADIR</a>
<button type="submit" class="btn btn-custom btn-other"><i class="fa fa-plus"></i> AÑADIR</button>
</div>
</form>
</div>
......
......@@ -6,7 +6,16 @@
<div class="container">
<div class="row">
<div class="col-xs-10 col-sm-11">
{{ title }}
<div class="row">
<div class="col-md-6">
<b>{{ title }}:</b> {{ conversation.subject }} <br>
<b>Estado:</b> {{ conversation.state.ds }}
</div>
<div class="col-md-6">
<b>Día de contacto:</b> {{ conversation.created_at|date("d/m/Y") }} <br>
<b>Hora de contacto:</b> {{ conversation.created_at|date("H:i:s") }}
</div>
</div>
</div>
<div class="col-xs-2 col-sm-1 text-right" data-toggle="tooltip-info" data-placement="bottom" title="¿Como funciona?">
<i class="fa fa-info-circle" data-toggle="modal" data-target="#modalInfo"></i>
......@@ -18,70 +27,74 @@
<div class="container mt20 pb40" >
<div class="col-container">
{#**********************************************listado de la conversación en formato chat**********************************************#}
<!--CONSULTA CLIENTE INICIAL SE MUESTRA ASUNTO, CUERPO, FECHA Y ESTADO DE CONSULTA-->
<div class="row">
{#contenido#}
<div class="col-xs-12 text-right">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
<p class="font-dark">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dignissim sit amet nibh at ultrices. Cras bibendum, turpis ac dapibus feugiat, lorem nisl porttitor enim, sed finibus ligula diam vitae erat. Sed justo magna, accumsan in blandit euismod, interdum eu dui. Aliquam erat volutpat. Donec sodales velit et ullamcorper dignissim. Aliquam euismod porta leo, ac pellentesque turpis rhoncus vitae. Sed non tempor ante. Duis non venenatis mauris, eu ultricies justo. Praesent at augue ante.</p>
<p><i class="fa fa-calendar"></i> 12/04/2019</p>
<p class="color-menus-saludables"><i class="fa fa-envelope"></i> Respuesta</p>
</div>
</div>
<hr>
<!--RESPUESTAS, SOLO SE MUSTRA EL CUERPO DE LA RESPUESTA Y LA FECHA, NO EL ASUNTO QUE SE REPITE-->
{% for m in conversation.messages %}
<!--respuesta NUTRICIONISTA -->
<div class="row">
{#icono cliente#}
<div class="col-sm-2 text-center">
<img src="assets/img/consultas/nutricionista_sm.png" class="img-responsive-custom img-circle"/>
<p class="mt10">Victoria Fagundez</p>
</div>
{#contenido#}
<div class="col-sm-10">
<p class="font-dark"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dignissim sit amet nibh at ultrices. Cras bibendum, turpis ac dapibus feugiat, lorem nisl porttitor enim, sed finibus ligula diam vitae erat. Sed justo magna, accumsan in blandit euismod, interdum eu dui. Aliquam erat volutpat. Donec sodales velit et ullamcorper dignissim. Aliquam euismod porta leo, ac pellentesque turpis rhoncus vitae. Sed non tempor ante. Duis non venenatis mauris, eu ultricies justo. Praesent at augue ante.</p>
<p><i class="fa fa-calendar"></i> 13/04/2019</p>
</div>
</div>
<hr>
<!--respuesta CLIENTE -->
<div class="row">
{#contenido#}
<div class="col-xs-12 text-right">
<p class="font-dark">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dignissim sit amet nibh at ultrices. Cras bibendum, turpis ac dapibus feugiat, lorem nisl porttitor enim, sed finibus ligula diam vitae erat. Sed justo magna, accumsan in blandit euismod, interdum eu dui. Aliquam erat volutpat. Donec sodales velit et ullamcorper dignissim. Aliquam euismod porta leo, ac pellentesque turpis rhoncus vitae. Sed non tempor ante. Duis non venenatis mauris, eu ultricies justo. Praesent at augue ante.</p>
<p><i class="fa fa-calendar"></i> 14/04/2019</p>
</div>
</div>
<hr>
<!--respuesta NUTRICIONISTA -->
<div class="row">
{#icono cliente#}
<div class="col-sm-2 text-center">
<img src="assets/img/consultas/nutricionista_sm.png" class="img-responsive-custom img-circle"/>
<p class="mt10">Victoria Fagundez</p>
{% if loop.index % 2 != 0 %}
{#// CLIENTE#}
<div class="row">
{#contenido#}
<div class="col-xs-12 text-right">
<p class="font-dark">{{ m.message }}</p>
<p><i class="fa fa-calendar"></i> {{ m.created_at|date("d/m/Y H:i:s") }}</p>
{% if m.read == "S" %}
<p style="color: dodgerblue"><i class="fa fa-eye"></i> Leído </p>
{% else %}
<p style="color: red"><i class="fa fa-eye"></i> No Leído </p>
{% endif %}
</div>
</div>
{#contenido#}
<div class="col-sm-10">
<p class="font-dark"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dignissim sit amet nibh at ultrices. Cras bibendum, turpis ac dapibus feugiat, lorem nisl porttitor enim, sed finibus ligula diam vitae erat. Sed justo magna, accumsan in blandit euismod, interdum eu dui. Aliquam erat volutpat. Donec sodales velit et ullamcorper dignissim. Aliquam euismod porta leo, ac pellentesque turpis rhoncus vitae. Sed non tempor ante. Duis non venenatis mauris, eu ultricies justo. Praesent at augue ante.</p>
<p><i class="fa fa-calendar"></i> 15/04/2019</p>
{% else %}
<!--respuesta NUTRICIONISTA -->
<div class="row">
{#icono cliente#}
<div class="col-sm-2 text-center">
<img src="assets/img/consultas/nutricionista_sm.png" class="img-responsive-custom img-circle"/>
<p class="mt10">{{ m.auth_user.nombre ~ " " ~ m.auth_user.apellidos }}</p>
</div>
{#contenido#}
<div class="col-sm-10">
<p class="font-dark">{{ m.message }}</p>
<p><i class="fa fa-calendar"></i> {{ m.created_at|date("d/m/Y H:i:s") }}</p>
{% if m.read == "S" %}
<p style="color: dodgerblue"><i class="fa fa-eye"></i> Leído </p>
{% else %}
<p style="color: red"><i class="fa fa-eye"></i> No Leído </p>
{% endif %}
</div>
</div>
</div>
{% endif %}
<hr>
{% endfor %}
{#**********************************************FORMULARIO RESPUESTA**********************************************#}
<hr>
<div class="row">
<div class="col-sm-10 col-md-11">
<textarea rows="5" class="form-control" name="subject" id="body" value="" placeholder="Responder..."></textarea>
</div>
<div class="col-sm-2 col-md-1">
<div class="mt20">
<a class="btn btn-custom btn-other" title="Enviar"><i class="fa fa-send"></i></a>
{#Si la conversacion esta pendiente, respondida por cliente o cerrada no le dejamos seguir respondiendo#}
{% if conversation.state_id != 1 and conversation.state_id != 2 and conversation.state_id != 4 %}
<form action="{{ url("consultas-nutricionista/update") }}" method="post">
<input type="hidden" name="id" value="{{ conversation.id }}">
<div class="row">
<div class="col-sm-10 col-md-11">
<textarea rows="5" class="form-control" name="message" placeholder="Responder..."></textarea>
</div>
<div class="col-sm-2 col-md-1">
<div class="mt20">
<button type="submit" class="btn btn-custom btn-other" title="Enviar"><i class="fa fa-send"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
{% endif %}
</div>
</div>
{% endblock %}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment