hgmnetwork Buen día.
Realicé los cambios en los archivos como lo mencionas, si me muestra los iconos de mes anterior y mes actual, pero al dar click no hace nada, agrego como quedaron mis archivos después de modificarlos para que me ayudes a revisar si tuve algún error.
base.js
function changeMenu()
{
if ($('#miniMenu').is(':visible')) {
// Cambiar de mini a menú completo
$('#miniMenu').hide();
$('#fullMenu').show();
$('#tdMenuIzq').show();
} else {
// Cambiar de menú completo a mini
$('#fullMenu').hide();
$('#tdMenuIzq').hide();
$('#miniMenu').show();
}
}
function openWindow(path) { popUp(path, 700, 460); }
// Función de compatibilidad
function confirmSubmit(message) { return confirm(message); }
function popUp(path,width_value,height_value)
{
var features = 'width='+width_value+',height='+height_value+',resizable=no,scrollbars=yes,toolbar=no,location=no,menubar=no,status=no';
var popupWin = window.open(path, "_cmdWin", features);
popupWin.focus();
//return true;
}
// End -->
var current_setTimeout = null;
function request(url,arrParams, recursive, callback)
{
callback = callback || null;
recursive = recursive || null;
/* Por Alex: muchos usuarios de la funcion request() crean un objeto de tipo
* Array, y asignan propiedades para que sean usadas como parámetros en la
* petición. Sin embargo, $.post() no acepta un Array, sino un objeto hash
* ordinario. No se puede pasar el parámetro arrParams directamente a
* $.post(), porque resulta en la ausencia de parámetros en la petición.
* Por lo tanto, se tiene que iterar por las claves asignadas, y recolectar
* el valor correspondiente en un hash ordinario. */
var params = {};
var empty_array = new Array();
for (var k in arrParams) {
/* Por Alex: algunas bibliotecas Javascript (en particular Ember.js)
* agregan mixin al Array, el cual a su vez agrega propiedades a todas
* las instancias de Array. Estas propiedades deben ser excluidas de
* las peticiones AJAX, o se presentan errores fatales de Javascript.
* El filtro de abajo podría todavía fallar si la propiedad asignada
* corresponde al mismo tipo de dato que una propiedad del mixin.
* Para una propiedad que se asigna para request pero no está presente
* en el mixin, typeof empty_array[k] debería evaluarse a "undefined".
*/
if (!(Array.prototype.isPrototypeOf(arrParams) && typeof arrParams[k] == typeof empty_array[k]))
params[k] = arrParams[k];
}
// Comienza petición por ajax
$.post(url,
params,
function(dataResponse){
var message = dataResponse.message;
var statusResponse = dataResponse.statusResponse;
var error = dataResponse.error;
var stop_recursive = false;
if(statusResponse == "ERROR_SESSION"){
$.unblockUI();
var r = confirm(error);
if (r==true)
location.href = 'index.php';
return;
}
if(callback)
stop_recursive = callback(message,statusResponse,error);
if(statusResponse){
if(recursive & !stop_recursive){
current_setTimeout = setTimeout(function(){request(url,arrParams,recursive,callback)},2);
//la funcion espera 200ms para ejecutarse,pero la funcion actual si se termina de ejecutar,creando un hilo.
}
}
else{
//alert("hubo un problema de comunicacion...");
}
},
'json');
// Termina petición por ajax
}
function existsRequestRecursive()
{
return (current_setTimeout)?true:false;
}
function clearResquestRecursive()
{
clearTimeout(current_setTimeout);
}
function hide_message_error(){
document.getElementById("message_error").style.display = 'none';
}
function ShowModalPopUP(title, width, height, html)
{
$('.neo-modal-issabel-popup-content').html(html);
$('.neo-modal-issabel-popup-title').text(title);
var maskHeight = $(document).height();
var maskWidth = $(window).width();
$('.neo-modal-issabel-popup-blockmask').css({'width':maskWidth,'height':maskHeight});
$('.neo-modal-issabel-popup-blockmask').fadeIn(600);
$('.neo-modal-issabel-popup-blockmask').fadeTo("fast",0.8);
var winH = $(window).height();
var winW = $(window).width();
var minpad = 10;
var boxpadx = 25;
var boxpady = 20;
var vpad = (winH - height) / 2 - boxpady;
var hpad = (winW - width) / 2 - boxpadx;
if (vpad < minpad) vpad = minpad;
if (hpad < minpad) hpad = minpad;
$('.neo-modal-issabel-popup-content').css({
'position': 'absolute',
'top': '40px',
'bottom': '20px',
'left': '20px',
'right': '20px'
});
// if (vpad == minpad || hpad == minpad) {
$('.neo-modal-issabel-popup-content').css({
'overflow-y': 'auto',
'overflow-x': 'auto'
});
/ } else {
$('.neo-modal-issabel-popup-content').css({
'overflow-y': 'visible',
'overflow-x': 'visible'
});
}
/
$('.neo-modal-issabel-popup-box').css({
'height': winH - 2 vpad - 2 boxpady,
'top': vpad,
'width': winW - 2 hpad - 2 boxpadx,
'left': hpad,
'box-sizing': 'content-box' // para tema tenant
});
$('.neo-modal-issabel-popup-box').fadeIn(2000);
$('.neo-modal-issabel-popup-close').click(function() {
hideModalPopUP();
});
}
function hideModalPopUP()
{
$('.neo-modal-issabel-popup-box').fadeOut(10);
$('.neo-modal-issabel-popup-blockmask').fadeOut(20);
$('.neo-modal-issabel-popup-content').html("");
}
function showPopupCloudLogin(title, width, height)
{
$.get('index.php', {
menu: 'registration',
action: 'cloudlogin',
rawmode: 'yes'
}, function(response) {
var arrData = response.message;
var statusResponse = response.statusResponse;
var error = response.error;
ShowModalPopUP(title,width,height,arrData['form']);
if(arrData['registered']=="yes-all"){
showLoading(arrData['msgloading']);
getDataWebServer();
}
});
}
function issabel_blockUI(msg)
{
$.blockUI({
message: "<div style='margin: 10px;'><div align='center'><img src='images/loading2.gif' /></div><div align='center'><span style='font-size: 14px; '>"+msg+"</span></div><
/div>"
});
}
$(document).ready(function(){
//***Para los módulos con filtro se llama a la función pressKey
if (document.getElementById("filter_value") ||
document.getElementById("pageup") ||
document.getElementById("neo-sticky-note-textarea")) {
$('#pageup').keypress(keyPressed);
$('#pagedown').keypress(keyPressed);
}
$('#viewDetailsRPMs').click(function() {
$.get('index.php', {
menu: '_issabelutils',
action: 'dialogRPM',
rawmode: 'yes'
}, function(response) {
var arrData = response.message;
var statusResponse = response.statusResponse;
var error = response.error;
ShowModalPopUP(arrData['title'],380,800,arrData['html']);
// La plantilla tiene una referencia a script que llama a versionRPM
});
});
$('a.setadminpassword').click(function () {
$.get('index.php', {
menu: '_issabelutils',
action: 'dialogPasswordIssabel',
rawmode: 'yes'
}, function(response) {
var arrData = response.message;
var statusResponse = response.statusResponse;
var error = response.error;
ShowModalPopUP(arrData['title'], 380, 160, arrData['html']);
// La plantilla tiene una referencia a script que llama a changePasswordIssabel
});
});
$('#dialogaboutissabel').click(function() {
$.get("index.php", {
menu: '_issabelutils',
action: 'showAboutUs',
rawmode: 'yes'
}, function(response) {
var arrData = response.message;
var statusResponse = response.statusResponse;
var error = response.error;
ShowModalPopUP(arrData['title'],450,120,arrData['html']);
});
});
$('#search_module_issabel').autocomplete({
autoFocus: true,
delay: 0,
minLength: 1,
source: 'index.php?menu=_issabelutils&action=search_module&rawmode=yes',
focus: function() { return false; },
select: function(event, ui) { window.open('?menu='+ui.item.value, '_self'); },
// El div de búsqueda debe permanecer visible mientras se selecciona
open: function(event, ui) { $(this).parents('div').first().css('display', 'block'); },
close: function(event, ui) { $(this).parents('div').first().css('display', ''); }
});
var menu = getParameterByName("menu");
if (typeof menu!== "undefined" && menu) {
var lblmenu = menu.split("_");
if(lblmenu["0"]=="a2b") {
$('#myframe').load(function() {
$(".topmenu-right-button a",myframe.document).attr("target","_self");
});
}
}
// En la clase paloSantoForm.class.php, a los input radio se definio
// que tengan un estilo defaulf de jquery, para ello se declara una
// clase global para que hereden todos los input radio el nuevo estilo.
$( ".radio_buttonset_elx" ).buttonset();
// En el index.php del framework se hacía uso de smarty para
// setear el estado del registro, ahora se hace desde javascript.
$.get('index.php', {
menu: 'registration',
action: 'isRegistered',
rawmode: 'yes'
}, function(response) {
var arrData = response.message;
var statusResponse = response.statusResponse;
var error = response.error;
$('.register_link').css('color',arrData['color']);
$('.register_link').text(arrData['label']);
// Mostrar el popup si no está registrado
if (arrData.auto_popup) $('a.register_link').click();
});
$('a.register_link').click(function() { showPopupCloudLogin('',540,335); });
});
//Si se presiona enter se hace un submit al formulario para que se aplica el filtro
function keyPressed(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13) {
$("form").submit();
return false;
}
}
//Capturar el valor del parametro dado del url
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/+/g, ' '));
}
// Recoger el valor del módulo activo a partir de issabel_framework_module_id
function getCurrentIssabelModule()
{
return $('#issabel_framework_module_id').val();
}
/
modificado por hgmnetwork.com para seleccionar los rangos de fechas mas habituales a consultar en los filtros
el mes pasado y el mes actual.
/
function seleccionar_mes_pasado(){
/
en los filtros de fechas, seleccionamos el primero y ultimo del mes pasado para ahorrar tiempo
/
var date = new Date(),
day = date.getDate(),
month = date.getMonth(),
year = date.getFullYear();
//ponemos el dia 1 del mes actual y el ultimo del mes actual
var date = new Date(), y = date.getFullYear(), m = date.getMonth();
//para sumary_by_extension
$("input[name=date_from]").datepicker("setDate", new Date(year,month -1,01));
$("input[name=date_to]").datepicker("setDate", new Date(year,month ,00));
//para CDR Report y missed_calls y call center calls_detail
$("input[name=date_start]").datepicker("setDate", new Date(year,month -1,01));
$("input[name=date_end]").datepicker("setDate", new Date(year,month ,00));
};
function seleccionar_mes_actual(){
/
en los filtros de fechas, seleccionamos el primero y ultimo del mes pasado para ahorrar tiempo
/
var date = new Date(),
day = date.getDate(),
month = date.getMonth(),
year = date.getFullYear();
//ponemos el dia 1 del mes actual y el ultimo del mes actual
var date = new Date(), y = date.getFullYear(), m = date.getMonth();
//para sumary_by_extension
$("input[name=date_from]").datepicker("setDate", new Date(year,month,01));
$("input[name=date_to]").datepicker("setDate", new Date(year,month + 1 ,00));
//para CDR Report y missed_calls y call center calls_detail
$("input[name=date_start]").datepicker("setDate", new Date(year,month,01));
$("input[name=date_end]").datepicker("setDate", new Date(year,month + 1 ,00));
//para call center
};
Archivo filter.tpl
/var/www/html/modules/summary_by_extension/themes/default/filter.tpl
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr class="letra12">
<td align="right" width="8%">{$date_from.LABEL}: </td>
<td align="left" width="13%">{$date_from.INPUT}</td>
<td align="right" width="7%">{$option_fil.LABEL}: </td>
<td align="left" width="22%">{$option_fil.INPUT} {$value_fil.INPUT}</td>
<td align="left"><input class="button" type="submit" name="show" value="{$SHOW}"></td>
</tr>
<tr class="letra12">
<td align="right" width="5%">{$date_to.LABEL}: </td>
<td align="left">{$date_to.INPUT}</td>
<td colspan="4">
<a href="javascript:seleccionar_mes_pasado();"><img src='images/calendar.png' alt='Mes Anterior' title='Mes Anterior' align='absmiddle' border='0' width='22' height='22' style="cursor:
pointer;" /></a>
<a href="javascript:seleccionar_mes_actual();"><img src='images/list.png' alt='Mes Actual' title='Mes Actual' align='absmiddle' border='0' width='22' height='22' style="cursor: pointer
;" /></a>
</td>
</tr>
</table>
{literal}
<script type= "text/javascript">
function popup_ventana(url_popup)
{
var ancho = 750;
var alto = 580;
var winiz = (screen.width-ancho)/2;
var winal = (screen.height-alto)/2;
my_window = window.open(url_popup,"my_window","width="+ancho+",height="+alto+",top="+winal+",left="+winiz+",location=yes,status=yes,resizable=yes,scrollbars=yes,fullscreen=no,toolbar=yes")
;
my_window.document.close();
}
</script>
{/literal}
Archivo filter.tpl
/var/www/html/modules/cdrreport/themes/default/filter.tpl
<table width="99%" cellpadding="4" cellspacing="0" border="0" align="center">
<tr class="letra12">
<td width="7%" align="right">{$date_start.LABEL}:</td>
<td width="10%" align="left" nowrap>{$date_start.INPUT}</td>
<td width="11%" align="right">{$field_pattern.LABEL}: </td>
<td width="14%" align="left" nowrap>{$field_name.INPUT} {$field_pattern.INPUT}</td>
<td align="left"><input class="button" type="submit" name="filter" value="{$Filter}" /></td>
</tr>
<tr class="letra12">
<td align="right">{$date_end.LABEL}:</td>
<td align="left" nowrap>{$date_end.INPUT}</td>
<td align="right">{$status.LABEL}: </td>
<td align="left" nowrap>{$status.INPUT}</td>
</tr>
<tr class="letra12">
<td align="right"><a href="javascript:seleccionar_mes_pasado();"><img src='images/calendar.png' alt='Mes Anterior' title='Mes Anterior' align='absmiddle' border='0' width='22' height='
22' style="cursor: pointer;" /></a>
<a href="javascript:seleccionar_mes_actual();"><img src='images/list.png' alt='Mes Actual' title='Mes Actual' align='absmiddle' border='0' width='22' height='22' style="cursor: pointer
;" /></a>
</td> <td /td>
<td /td>
<td align="right">{$ringgroup.LABEL}: </td>
<td align="left" nowrap>{$ringgroup.INPUT}</td>
</tr>
</table>
Saludos...