Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
1258 righe
56 KiB
1258 righe
56 KiB
5 anni fa
|
var disableDate = ["2018-02-14", "2018-02-15", "2018-02-16"];
|
||
|
|
||
|
var calendar = {
|
||
|
init: function (jsonFunzionari, date, presidio, constants) {
|
||
|
|
||
|
this.constants = $.extend(this.constants, constants);
|
||
|
|
||
|
this.datepiker.init(date, presidio);
|
||
|
this.agenda.init(jsonFunzionari, date, presidio);
|
||
|
|
||
|
this.constants.presidio = presidio;
|
||
|
|
||
|
this.modalitaPrenotazione.init();
|
||
|
this.selectedDate = date;
|
||
|
},
|
||
|
|
||
|
constants: {
|
||
|
workspace : '#_1_WAR_portoscalendarappointmentsportlet_',
|
||
|
presidio: '',
|
||
|
isModalitaPrenotazione: false,
|
||
|
selectedDate: ''
|
||
|
},
|
||
|
|
||
|
clear: function () {
|
||
|
|
||
|
AUI().all(".agenda__body--row").each(function (){
|
||
|
AUI().one(this).detach("click");
|
||
|
});
|
||
|
|
||
|
AUI().one(calendar.constants.workspace + "save").detach("click");
|
||
|
AUI().one(calendar.constants.workspace + "delete").detach("click");
|
||
|
AUI().one(calendar.constants.workspace + "save_disponibilita").detach("click");
|
||
|
AUI().one(calendar.constants.workspace + "delete_disponibilita").detach("click");
|
||
|
|
||
|
this.agenda.clearAvailable();
|
||
|
this.agenda.clearEvents();
|
||
|
},
|
||
|
|
||
|
refresh: function(){
|
||
|
$('.layer-popup').addClass('active');
|
||
|
calendar.clear();
|
||
|
calendar.agenda.popolateByDay(calendar.constants.selectedDate, calendar.constants.presidio);
|
||
|
calendar.agenda.initPopup();
|
||
|
|
||
|
setTimeout(function() {
|
||
|
$('.layer-popup').removeClass('active');
|
||
|
}, 400)
|
||
|
},
|
||
|
|
||
|
datepiker: {
|
||
|
init: function (date, presidio) {
|
||
|
$("#datepicker").datepicker({
|
||
|
dateFormat: 'dd/MM/yy',
|
||
|
monthNames: ["01","02","03","04","05","06","07","08","09","10","11","12"],
|
||
|
onSelect: function (dateText, inst) {
|
||
|
// calendar.clear();
|
||
|
// calendar.agenda.popolateByDay(dateText, presidio);
|
||
|
calendar.constants.selectedDate = dateText;
|
||
|
calendar.refresh();
|
||
|
},
|
||
|
beforeShowDay: function (date) {
|
||
|
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
|
||
|
return [disableDate.indexOf(string) == -1]
|
||
|
}
|
||
|
});
|
||
|
$.datepicker.setDefaults($.datepicker.regional["it"]);
|
||
|
calendar.constants.selectedDate = date;
|
||
|
$("#datepicker").datepicker('setDate', date);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
modalitaPrenotazione: {
|
||
|
setModalitaPrenotazione: function(activate) {
|
||
|
calendar.constants.isModalitaPrenotazione = activate;
|
||
|
|
||
|
calendar.refresh();
|
||
|
},
|
||
|
init: function () {
|
||
|
var isFeUser = !(isDirigenteGenerale=='true' || isIstruttoreForOrgs=='true' || isPOForOrgs=='true' || isBoUser=='true');
|
||
|
|
||
|
$('#prenotazioneMode').change(function(event) {
|
||
|
calendar.modalitaPrenotazione.setModalitaPrenotazione($(this).is(":checked"));
|
||
|
event.preventDefault();
|
||
|
});
|
||
|
|
||
|
if(isFeUser)
|
||
|
$('#prenotazioneModeBox').hide();
|
||
|
else
|
||
|
$('#prenotazioneModeBox').show();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
agenda: {
|
||
|
init: function (jsonFunzionari, date, presidio) {
|
||
|
|
||
|
this.createHeader(jsonFunzionari, date, presidio);
|
||
|
this.createBody(jsonFunzionari, date, presidio);
|
||
|
|
||
|
this.popolateByDay(date, presidio);
|
||
|
this.initPopup();
|
||
|
},
|
||
|
|
||
|
popolateByDay: function(date, presidio) {
|
||
|
var _this = this;
|
||
|
Liferay.Service(
|
||
|
'/portos-calendar-appointments-portlet.disponibilita/get-disponibilita-by-date',
|
||
|
{
|
||
|
/*FI OLD*/
|
||
|
presidio: presidio,
|
||
|
date: date
|
||
|
},
|
||
|
function(obj) {
|
||
|
_this.setAvailable(obj, date, presidio);
|
||
|
_this.loadEvents(_this, date, presidio);
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
|
||
|
createHeader: function (jsonFunzionari, date, presidio) {
|
||
|
var $this = $('.agenda__header');
|
||
|
var header_template = '<div class="agenda__header--offset"></div>';
|
||
|
var funzionari = JSON.parse(jsonFunzionari);
|
||
|
var nfunzionari = funzionari.length;
|
||
|
|
||
|
for (var i = 0; i < nfunzionari; i++) {
|
||
|
var role = '';
|
||
|
switch (funzionari[i].tipologia) {
|
||
|
case 'Geologo':
|
||
|
role = "geologo";
|
||
|
break;
|
||
|
case 'Istruttore':
|
||
|
role = "istruttore";
|
||
|
break;
|
||
|
default:
|
||
|
role = "";
|
||
|
}
|
||
|
|
||
|
if(nfunzionari >= 10){
|
||
|
|
||
|
header_template = header_template.concat('<div class="agenda__header--item ' +
|
||
|
role +
|
||
|
'">' +
|
||
|
'<p class="agenda__header--item-name agenda__header--item-name-size-min">' +
|
||
|
//Bug 32935
|
||
|
funzionari[i].cognome + ' ' +funzionari[i].nome +
|
||
|
'</p>' +
|
||
|
'<p class="agenda__header--item-role agenda__header--item-role-size-min">(' +
|
||
|
funzionari[i].tipologia +
|
||
|
')</p>' +
|
||
|
'</div>');
|
||
|
|
||
|
} else {
|
||
|
|
||
|
header_template = header_template.concat('<div class="agenda__header--item ' +
|
||
|
role +
|
||
|
'">' +
|
||
|
'<p class="agenda__header--item-name agenda__header--item-name-size-max">' +
|
||
|
//Bug 32935
|
||
|
funzionari[i].cognome + ' ' +funzionari[i].nome +
|
||
|
'</p>' +
|
||
|
'<p class="agenda__header--item-role agenda__header--item-role-size-max">(' +
|
||
|
funzionari[i].tipologia +
|
||
|
')</p>' +
|
||
|
'</div>');
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
$this.html(header_template);
|
||
|
},
|
||
|
|
||
|
createBody: function (jsonFunzionari, date, presidio) {
|
||
|
|
||
|
|
||
|
|
||
|
var $this = $('.agenda__body');
|
||
|
var funzionari = JSON.parse(jsonFunzionari);
|
||
|
var nfunzionari = funzionari.length;
|
||
|
var header_body_timing = '';
|
||
|
|
||
|
for (var i = 0; i < nfunzionari; i++) {
|
||
|
var role = '';
|
||
|
switch (funzionari[i].tipologia) {
|
||
|
case 'Geologo':
|
||
|
role = "geologo";
|
||
|
break;
|
||
|
case 'Strutturista':
|
||
|
role = "strutturista";
|
||
|
break;
|
||
|
default:
|
||
|
role = "";
|
||
|
}
|
||
|
|
||
|
header_body_timing = header_body_timing.concat('<div class="agenda__body--timing">\n' +
|
||
|
'<div class="agenda__body--timing__header"></div>' +
|
||
|
' <div class="timing__hour">08:00</div>\n' +
|
||
|
' <div class="timing__hour">09:00</div>\n' +
|
||
|
' <div class="timing__hour">10:00</div>\n' +
|
||
|
' <div class="timing__hour">11:00</div>\n' +
|
||
|
' <div class="timing__hour">12:00</div>\n' +
|
||
|
' <div class="timing__hour">13:00</div>\n' +
|
||
|
' <div class="timing__hour">14:00</div>\n' +
|
||
|
' <div class="timing__hour">15:00</div>\n' +
|
||
|
' <div class="timing__hour">16:00</div>\n' +
|
||
|
' <div class="timing__hour">17:00</div>\n' +
|
||
|
' <div class="timing__hour">18:00</div>\n' +
|
||
|
' <div class="timing__hour">19:00</div>\n' +
|
||
|
' </div>\n' +
|
||
|
' <div id="col_' + funzionari[i].id + '"' +
|
||
|
' class="agenda__body--col">\n' +
|
||
|
' <div class="agenda__body--col__header ' +
|
||
|
role +
|
||
|
'">' +
|
||
|
'<p class="agenda__body--col__header-name">' +
|
||
|
//Bug 32935
|
||
|
funzionari[i].cognome +' '+funzionari[i].nome+
|
||
|
'</p>' +
|
||
|
'<p class="agenda__body--col__header-role">(' +
|
||
|
funzionari[i].tipologia +
|
||
|
')</p>' +
|
||
|
'</div>' +
|
||
|
' <div data-id="08:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="08:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="09:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="09:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="10:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="10:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="11:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="11:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="12:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="12:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="13:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="13:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="14:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="14:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="15:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="15:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="16:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="16:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="17:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="17:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="18:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="18:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="19:00" class="agenda__body--row first_half_hour">\n' +
|
||
|
' </div>\n' +
|
||
|
' <div data-id="19:30" class="agenda__body--row">\n' +
|
||
|
' </div>\n' +
|
||
|
' </div>');
|
||
|
$this.html(header_body_timing);
|
||
|
}
|
||
|
|
||
|
},
|
||
|
|
||
|
setAvailable: function (jsonDisponibilita, date, presidio) {
|
||
|
|
||
|
var disponibilita = JSON.parse(jsonDisponibilita);
|
||
|
var ndisponibilita = disponibilita.length;
|
||
|
|
||
|
|
||
|
for (var i in disponibilita) {
|
||
|
|
||
|
//Bug 32935
|
||
|
// var isDisponibile = disponibilita[i].ore[0].disponibile;
|
||
|
|
||
|
// if(isDisponibile){
|
||
|
|
||
|
var idCols = '#col_' + disponibilita[i].idFunzionario;
|
||
|
var array_row = $('#col_' + disponibilita[i].idFunzionario + ' .agenda__body--row');
|
||
|
|
||
|
for (var j in disponibilita[i].ore) {
|
||
|
var inizioAvailable = disponibilita[i].ore[j].inizio;
|
||
|
var fineAvailable = disponibilita[i].ore[j].fine;
|
||
|
|
||
|
var isDisponibile = disponibilita[i].ore[j].disponibile;
|
||
|
if(isDisponibile){
|
||
|
var targetStartAvailable = idCols + ' *[data-id="' + inizioAvailable + '"]';
|
||
|
var targetEndAvailable = idCols + ' *[data-id="' + fineAvailable + '"]';
|
||
|
|
||
|
var tmpClass = calendar.constants.isModalitaPrenotazione ? 'prenotazione' : 'available';
|
||
|
|
||
|
$(targetStartAvailable).addClass(tmpClass).addClass('available-start');
|
||
|
$(targetEndAvailable).addClass('available-finish');
|
||
|
|
||
|
var fascia = false;
|
||
|
array_row.each(function (indici) {
|
||
|
if ($(this).hasClass("available-start")) {
|
||
|
$(this).addClass(tmpClass);
|
||
|
fascia = true;
|
||
|
|
||
|
} else if ($(this).hasClass("available-finish")) {
|
||
|
fascia = false;
|
||
|
} else if (fascia) {
|
||
|
$(this).addClass(tmpClass);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
// }
|
||
|
}
|
||
|
},
|
||
|
|
||
|
loadEvents: function (scope, date, presidio) {
|
||
|
var _this = this;
|
||
|
var userId = Liferay.ThemeDisplay.getUserId()
|
||
|
Liferay.Service(
|
||
|
'/portos-calendar-appointments-portlet.prenotazione/get-prenotazioni-by-date',
|
||
|
{
|
||
|
/*FI OLD*/
|
||
|
presidio: presidio,
|
||
|
date: date,
|
||
|
userId: userId
|
||
|
},
|
||
|
function(obj) {
|
||
|
var eventi = JSON.parse(obj);
|
||
|
var nprenotazioni = eventi.length;
|
||
|
|
||
|
var tmpClass = calendar.constants.isModalitaPrenotazione ? 'prenotazione' : 'available' ;
|
||
|
|
||
|
for (var i in eventi) {
|
||
|
var array_inizi = [];
|
||
|
var array_finish = [];
|
||
|
|
||
|
// console.log(eventi);
|
||
|
|
||
|
var idCols = '#col_' + eventi[i].idFunzionario;
|
||
|
|
||
|
var $idCols = $('#col_' + eventi[i].idFunzionario);
|
||
|
var array_row = $('#col_' + eventi[i].idFunzionario + ' .agenda__body--row');
|
||
|
|
||
|
for (var j in eventi[i].prenotazioni) {
|
||
|
var inizio = eventi[i].prenotazioni[j].inizio;
|
||
|
var fine = eventi[i].prenotazioni[j].fine;
|
||
|
var descrizione = eventi[i].prenotazioni[j].descrizione;
|
||
|
var richiedente = eventi[i].prenotazioni[j].richiedente;
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
var telefono = eventi[i].prenotazioni[j].telefono;
|
||
|
var email = eventi[i].prenotazioni[j].email;
|
||
|
|
||
|
var dataId = eventi[i].prenotazioni[j].idPrenotazione;
|
||
|
var idDescrizione = "descrizione_" + i + "_" + j;
|
||
|
|
||
|
var visible = eventi[i].prenotazioni[j].visible;
|
||
|
|
||
|
var html_desccrizione = "";
|
||
|
|
||
|
if(visible){
|
||
|
var html_desccrizione = '<div data-id="'+ dataId +'" id="' + idDescrizione + '" class="appuntamento_descrizione">' +
|
||
|
'<p class="appuntamento_descrizione--ora">' + inizio + '-' + fine + '</p>' +
|
||
|
'<p class="appuntamento_descrizione--richiedente">' + richiedente + '</p>' +
|
||
|
/* '<p class="appuntamento_descrizione--desc">' + descrizione + '</p>' +*/
|
||
|
'</div>';
|
||
|
} else {
|
||
|
var html_desccrizione = '<div data-id="'+ dataId +'" id="' + idDescrizione + '" class="appuntamento_descrizione_limite_visibile">' +
|
||
|
'<p class="appuntamento_descrizione_limite_visibile--ora">' + inizio + '-' + fine + '</p>' +
|
||
|
'</div>';
|
||
|
}
|
||
|
|
||
|
var targetStart = idCols + ' div[data-id="' + inizio + '"]';
|
||
|
var targetEnd = idCols + ' div[data-id="' + fine + '"]';
|
||
|
|
||
|
$(targetStart).addClass('busy busy-start').removeClass(tmpClass).removeClass('available-start available-finish');
|
||
|
$(targetEnd).addClass('busy-finish').removeClass('available-start available-finish');
|
||
|
|
||
|
$idCols.append(html_desccrizione);
|
||
|
|
||
|
// if(!visible){
|
||
|
// AUI().one("#"+idDescrizione).detach();
|
||
|
// }
|
||
|
|
||
|
var bottom = $(targetEnd).offset().top;
|
||
|
|
||
|
_this.positionDescription($('#' + idDescrizione), $(targetStart), bottom);
|
||
|
|
||
|
}
|
||
|
|
||
|
array_row.each(function (index) {
|
||
|
if ($(this).hasClass("busy-start")) {
|
||
|
array_inizi.push(index);
|
||
|
}
|
||
|
if ($(this).hasClass("busy-finish")) {
|
||
|
array_finish.push(index);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$.each(array_inizi, function (indici) {
|
||
|
array_row.filter(function (index) {
|
||
|
if (index >= array_inizi[indici] && index < array_finish[indici]) return true;
|
||
|
}).addClass('busy').removeClass(tmpClass).removeClass('available-start available-finish');
|
||
|
});
|
||
|
}
|
||
|
scope.initScrollbar();
|
||
|
scope.initEventOnOre(presidio);
|
||
|
scope.resizePrenotazioni(eventi);
|
||
|
}
|
||
|
)
|
||
|
},
|
||
|
|
||
|
clearAvailable: function () {
|
||
|
|
||
|
$('.appuntamento_descrizione').remove();
|
||
|
$('.appuntamento_descrizione_limite_visibile').remove();
|
||
|
$('.agenda__body--row').removeClass('busy busy-start busy-finish');
|
||
|
$('.agenda__body--row').removeClass('prenotazione');
|
||
|
},
|
||
|
|
||
|
clearEvents: function () {
|
||
|
$('.agenda__body--row').removeClass('available available-start available-finish')
|
||
|
},
|
||
|
|
||
|
positionDescription: function (idDescrizione, tagetStart, bottom) {
|
||
|
|
||
|
|
||
|
idDescrizione.css({
|
||
|
"left": tagetStart.position().left,
|
||
|
"top": tagetStart.position().top,
|
||
|
"height": bottom - tagetStart.offset().top
|
||
|
});
|
||
|
},
|
||
|
|
||
|
initScrollbar: function () {
|
||
|
var list_appuntamenti = $('.appuntamento_descrizione');
|
||
|
list_appuntamenti.each(function (index) {
|
||
|
var id_element = '#' + $(this).attr('id');
|
||
|
const ps = new PerfectScrollbar(id_element);
|
||
|
})
|
||
|
|
||
|
},
|
||
|
|
||
|
popolateSelectDisponibilita: function (presidio, date, idFunzionario, oraInizio) {
|
||
|
Liferay.Service(
|
||
|
'/portos-calendar-appointments-portlet.disponibilita/get-disponibilita-by-date',
|
||
|
{
|
||
|
presidio: presidio,
|
||
|
date: date
|
||
|
},
|
||
|
function(obj) {
|
||
|
var disponibilita = JSON.parse(obj);
|
||
|
var workspace = calendar.constants.workspace;
|
||
|
|
||
|
for (var i in disponibilita) {
|
||
|
if(idFunzionario == disponibilita[i].idFunzionario) {
|
||
|
var fascieOrarie = disponibilita[i].ore;
|
||
|
|
||
|
calendar.agenda.createOptionHtml(fascieOrarie, date,idFunzionario,presidio);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
AUI().one(".popup-calendar "+workspace+"oraInizio").val(oraInizio);
|
||
|
|
||
|
calendar.agenda.setHourByStart(oraInizio);
|
||
|
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
|
||
|
createOptionHtml: function(fascieOrarie, date,idFunzionario, presidio) {
|
||
|
|
||
|
var oreInizio = [];
|
||
|
var oreFine = [];
|
||
|
var ora = "";
|
||
|
var htmlInizioSelect = "";
|
||
|
var htmlFineSelect = "";
|
||
|
var workspace = calendar.constants.workspace;
|
||
|
|
||
|
for( var j in fascieOrarie){
|
||
|
|
||
|
var inizio = parseInt(fascieOrarie[j].inizio.substring(0, 2));
|
||
|
var inizioMin = parseInt(fascieOrarie[j].inizio.substring(3, 5));
|
||
|
var fine = parseInt(fascieOrarie[j].fine.substring(0, 2));
|
||
|
var fineMin = parseInt(fascieOrarie[j].fine.substring(3, 5));
|
||
|
|
||
|
oreInizio.push(fascieOrarie[j].inizio);
|
||
|
var first=true;
|
||
|
for(var i = inizio; i <= fine; i++) {
|
||
|
if(i<10) {
|
||
|
ora = '0'+i;
|
||
|
} else {
|
||
|
ora = ''+i;
|
||
|
}
|
||
|
|
||
|
if(first){
|
||
|
if(inizioMin != '30'){
|
||
|
oreInizio.push(ora+":30");
|
||
|
oreFine.push(ora+":30");
|
||
|
}
|
||
|
first=false;
|
||
|
}else{
|
||
|
if(i<fine){
|
||
|
oreInizio.push(ora+":00");
|
||
|
oreInizio.push(ora+":30");
|
||
|
}else if(i==fine && fineMin=='30'){
|
||
|
oreInizio.push(ora+":00");
|
||
|
}
|
||
|
if (i != fine){
|
||
|
oreFine.push(ora+":00");
|
||
|
oreFine.push(ora+":30");
|
||
|
}else if(fineMin == '30'){
|
||
|
oreFine.push(ora+":00");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
oreFine.push(fascieOrarie[j].fine);
|
||
|
}
|
||
|
|
||
|
|
||
|
Liferay.Service(
|
||
|
'/portos-calendar-appointments-portlet.disponibilita/verify-disponibilita-by-date-hour',
|
||
|
{
|
||
|
presidio: presidio,
|
||
|
date: date,
|
||
|
oreInizio:oreInizio,
|
||
|
idFunzionario:idFunzionario
|
||
|
},
|
||
|
function(obj) {
|
||
|
|
||
|
var slotJson = JSON.parse(obj);
|
||
|
var slot = slotJson.slot;
|
||
|
var nslot = slot.length;
|
||
|
|
||
|
for (var i = 0; i < nslot; i++) {
|
||
|
if(slot[i].disponibile){
|
||
|
htmlInizioSelect += '<option value="'+ slot[i].ora +'">'+ slot[i].ora +'</option>';
|
||
|
} else {
|
||
|
htmlInizioSelect += '<option disabled="disabled" value="'+ slot[i].ora +'">'+ slot[i].ora +'</option>';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$(".popup-calendar "+ workspace +"oraInizio").html(htmlInizioSelect);
|
||
|
|
||
|
oreFine.forEach(function( entry ) {
|
||
|
htmlFineSelect += '<option value="'+ entry +'">'+ entry +'</option>';
|
||
|
});
|
||
|
|
||
|
$(".popup-calendar "+ workspace +"oraFineSelect").html(htmlFineSelect);
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
},
|
||
|
|
||
|
initEventOnOre: function(presidio){
|
||
|
|
||
|
var workspace = calendar.constants.workspace;
|
||
|
var idCol = $(this).closest('.agenda__body--col').attr('id');
|
||
|
var dataId = $(this).data('id');
|
||
|
var userId = Liferay.ThemeDisplay.getUserName();
|
||
|
|
||
|
AUI().all(".appuntamento_descrizione").on(
|
||
|
'click',
|
||
|
function(event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
var prenotazione = event.currentTarget.getData('id');
|
||
|
|
||
|
AUI().io.request(
|
||
|
calendar.constants.getBookingUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_prenotazioneId": prenotazione
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('impossibile rimuovere la firma!');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
var response = this.get('responseData');
|
||
|
|
||
|
var idPrenotazione = response.idPrenotazione;
|
||
|
var funzionario = response.funzionario;
|
||
|
var funzionarioId = response.funzionarioId;
|
||
|
var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
var oraInizio = response.inizio;
|
||
|
var oraFine = response.fine;
|
||
|
var desc = response.descrizione;
|
||
|
var richiedente = response.richiedente;
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
var telefono = response.telefono;
|
||
|
var email = response.email;
|
||
|
|
||
|
// calendar.agenda.popolateSelectDisponibilita(presidio, date, funzionarioId, oraInizio);
|
||
|
|
||
|
$('.val-funzionario').html(funzionario);
|
||
|
$('.val-richiedente').html(richiedente);
|
||
|
|
||
|
$(".popup-calendar "+ workspace +"idPrenotazione").html(idPrenotazione)
|
||
|
$(".popup-calendar "+ workspace +"descrizione").val(desc);
|
||
|
$(".popup-calendar "+ workspace +"funzionarioId").val(funzionarioId);
|
||
|
$(".popup-calendar "+ workspace +"dataAppuntamento").val(date);
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
$(".popup-calendar "+ workspace +"telefono").val(telefono);
|
||
|
$(".popup-calendar "+ workspace +"email").val(email);
|
||
|
|
||
|
// setTimeout(function() {
|
||
|
$(".popup-calendar "+workspace+"oraInizio").val(oraInizio);
|
||
|
$(".popup-calendar "+workspace+"oraFineSelect").val(oraFine);
|
||
|
// }, 400);
|
||
|
|
||
|
|
||
|
|
||
|
if(response!=undefined && response!=null ){
|
||
|
$('.popup-calendar').not('#disponibilitaPopUp').slideDown();
|
||
|
$('.layer-popup').addClass('active');
|
||
|
calendar.agenda.viewMode();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
);
|
||
|
|
||
|
// AUI().all(".agenda__body--row.available").on(
|
||
|
AUI().all(".agenda__body--row").on(
|
||
|
'click',
|
||
|
function(event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
// console.log($(event.currentTarget).attr('data-id'));
|
||
|
var isDisponibilitaAvailable = event.currentTarget.hasClass('available');
|
||
|
var isPrenotazioneModeOn = event.currentTarget.hasClass('prenotazione');
|
||
|
|
||
|
// console.log('isDisponibilitaAvailable ' + isDisponibilitaAvailable);
|
||
|
// console.log('isDirigenteGenerale ' + isDirigenteGenerale);
|
||
|
// console.log('isIstruttoreForOrgs ' + isIstruttoreForOrgs);
|
||
|
// console.log('isPOForOrgs ' + isPOForOrgs);
|
||
|
// console.log('isBoUser ' + isBoUser);
|
||
|
|
||
|
var isFeUser = !(isDirigenteGenerale=='true' || isIstruttoreForOrgs=='true' || isPOForOrgs=='true' || isBoUser=='true');
|
||
|
// console.log('isFeUser ' + isFeUser);
|
||
|
|
||
|
var prenotazioneId = $(calendar.constants.workspace +"idPrenotazione").text();
|
||
|
// console.log('prenotazioneId ' + prenotazioneId);
|
||
|
|
||
|
//slot disponibile per creazione di una prenotazione
|
||
|
var funzionario = event.currentTarget.ancestor('.agenda__body--col').one('.agenda__body--col__header-name').html();
|
||
|
var funzionarioId = event.currentTarget.ancestor('.agenda__body--col').attr("id").replace("col_","");
|
||
|
var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
|
||
|
var oraInizio = event.currentTarget.getData('id');
|
||
|
// calendar.agenda.popolateSelectDisponibilita(presidio, date, funzionarioId, oraInizio);
|
||
|
|
||
|
var timeArray = oraInizio.split(':');
|
||
|
var dtFine = new Date((new Date()).setHours(timeArray[0], timeArray[1]));
|
||
|
dtFine = new Date(dtFine.getTime() + 30*60000);
|
||
|
var oraFine = dtFine.getHours().toString().padStart(2, '0') + ":" + dtFine.getMinutes().toString().padStart(2, '0');
|
||
|
|
||
|
$(".popup-calendar "+ workspace +"funzionarioId").val(funzionarioId);
|
||
|
$(".popup-calendar "+ workspace +"dataAppuntamento").val(date);
|
||
|
$('.val-funzionario').html(funzionario);
|
||
|
$('.val-richiedente').html(userId);
|
||
|
|
||
|
if((isFeUser && isDisponibilitaAvailable) || (!isFeUser && ((isDisponibilitaAvailable && prenotazioneId) || (isPrenotazioneModeOn && calendar.constants.isModalitaPrenotazione)))){
|
||
|
// //slot disponibile per creazione di una prenotazione
|
||
|
// $('.layer-popup').addClass('active');
|
||
|
//
|
||
|
// var funzionario = event.currentTarget.ancestor('.agenda__body--col').one('.agenda__body--col__header-name').html();
|
||
|
// var funzionarioId = event.currentTarget.ancestor('.agenda__body--col').attr("id").replace("col_","");
|
||
|
// var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
//
|
||
|
// var oraInizio = event.currentTarget.getData('id');
|
||
|
//// calendar.agenda.popolateSelectDisponibilita(presidio, date, funzionarioId, oraInizio);
|
||
|
//
|
||
|
// var timeArray = oraInizio.split(':');
|
||
|
// var dtFine = new Date((new Date()).setHours(timeArray[0], timeArray[1]));
|
||
|
// dtFine = new Date(dtFine.getTime() + 30*60000);
|
||
|
// var oraFine = dtFine.getHours().toString().padStart(2, '0') + ":" + dtFine.getMinutes().toString().padStart(2, '0');
|
||
|
$(workspace+"oraInizio").val(oraInizio);
|
||
|
$(workspace+"oraFineSelect").val(oraFine);
|
||
|
|
||
|
// $(".popup-calendar "+ workspace +"funzionarioId").val(funzionarioId);
|
||
|
// $(".popup-calendar "+ workspace +"dataAppuntamento").val(date);
|
||
|
// $('.val-funzionario').html(funzionario);
|
||
|
// $('.val-richiedente').html(userId);
|
||
|
|
||
|
if(!prenotazioneId)
|
||
|
calendar.agenda.editMode();
|
||
|
else
|
||
|
calendar.agenda.viewMode();
|
||
|
|
||
|
$('.layer-popup').addClass('active');
|
||
|
setTimeout(function() {
|
||
|
$('.popup-calendar').not('#disponibilitaPopUp').slideDown();
|
||
|
}, 300);
|
||
|
}else if(!isFeUser && !(calendar.constants.isModalitaPrenotazione)){
|
||
|
// //slot non disponibile per creazione di una disponibilità
|
||
|
// $('.layer-popup').addClass('active');
|
||
|
//
|
||
|
// var funzionario = event.currentTarget.ancestor('.agenda__body--col').one('.agenda__body--col__header-name').html();
|
||
|
// var funzionarioId = event.currentTarget.ancestor('.agenda__body--col').attr("id").replace("col_","");
|
||
|
// var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
//
|
||
|
// var oraInizio = event.currentTarget.getData('id');
|
||
|
// var timeArray = oraInizio.split(':');
|
||
|
// var dtFine = new Date((new Date()).setHours(timeArray[0], timeArray[1]));
|
||
|
// dtFine = new Date(dtFine.getTime() + 30*60000);
|
||
|
// var oraFine = dtFine.getHours().toString().padStart(2, '0') + ":" + dtFine.getMinutes().toString().padStart(2, '0');
|
||
|
|
||
|
$(workspace+"oraInizio_disponibilita").val(oraInizio);
|
||
|
$(workspace+"oraFineSelect_disponibilita").val(oraFine);
|
||
|
|
||
|
// $(".popup-calendar "+ workspace +"funzionarioId").val(funzionarioId);
|
||
|
// $(".popup-calendar "+ workspace +"dataAppuntamento").val(date);
|
||
|
// $('.val-funzionario').html(funzionario);
|
||
|
//// $('name=[userId]').html(userId);
|
||
|
|
||
|
if(isDisponibilitaAvailable)
|
||
|
calendar.agenda.viewMode();
|
||
|
else
|
||
|
calendar.agenda.editMode();
|
||
|
|
||
|
$('.layer-popup').addClass('active');
|
||
|
setTimeout(function() {
|
||
|
$('#disponibilitaPopUp.popup-calendar').slideDown();
|
||
|
}, 300);
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
|
||
|
initPopup: function () {
|
||
|
|
||
|
// console.log("initPopup: ");
|
||
|
|
||
|
var workspace = calendar.constants.workspace;
|
||
|
var idCol = $(this).closest('.agenda__body--col').attr('id');
|
||
|
var dataId = $(this).data('id');
|
||
|
var userId = Liferay.ThemeDisplay.getUserName();
|
||
|
|
||
|
AUI().one(".popup-calendar "+workspace+"oraInizio").on(
|
||
|
'change',
|
||
|
function(event) {
|
||
|
var oraInizio = event.currentTarget.val();
|
||
|
calendar.agenda.setHourByStart(oraInizio);
|
||
|
}
|
||
|
)
|
||
|
|
||
|
AUI().all('#icon-close-popup').on(
|
||
|
'click',
|
||
|
function(event) {
|
||
|
event.preventDefault();
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
AUI().one(calendar.constants.workspace+'edit').on(
|
||
|
'click',
|
||
|
|
||
|
function(event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
var prenotazione = AUI().one(".popup-calendar "+ calendar.constants.workspace +"idPrenotazione").text();
|
||
|
|
||
|
var userParam = calendar.constants.workspace+"userId",
|
||
|
prenotazioneParam = calendar.constants.workspace+"prenotazioneId";
|
||
|
|
||
|
AUI().io.request(
|
||
|
calendar.constants.isEditableUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_prenotazioneId" : prenotazione
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per modificare la prenotazione');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
var response = this.get('responseData');
|
||
|
|
||
|
if(response!=undefined && response!=null ){
|
||
|
if(response.status == "success"){
|
||
|
calendar.agenda.editMode();
|
||
|
} else if (response.status == "error"){
|
||
|
alert('Non si hanno i permessi per modificare la prenotazione');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
);
|
||
|
|
||
|
|
||
|
AUI().one(calendar.constants.workspace+'save_disponibilita').on(
|
||
|
'click',
|
||
|
|
||
|
function(event) {
|
||
|
|
||
|
event.preventDefault();
|
||
|
|
||
|
var oraInizio = $(calendar.constants.workspace +"oraInizio_disponibilita").val();
|
||
|
var oraFine = $(calendar.constants.workspace +"oraFineSelect_disponibilita").val();
|
||
|
var funzionarioId = $(calendar.constants.workspace + "funzionarioId").val();
|
||
|
var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
var presidio = calendar.constants.presidio;
|
||
|
|
||
|
// console.log('oraInizio ' + oraInizio);
|
||
|
// console.log('oraFine ' + oraFine);
|
||
|
// console.log('funzionarioId ' + funzionarioId);
|
||
|
// console.log('date ' + date);
|
||
|
// console.log('presidio ' + presidio);
|
||
|
|
||
|
if (confirm("Sei sicuro di voler salvare?") == true) {
|
||
|
AUI().io.request(
|
||
|
calendar.constants.createDisponibilitaUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraInizio" : oraInizio,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraFine" : oraFine,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_date" : date,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_funzionarioId" : funzionarioId,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_presidio" : presidio
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per creare una disponibilità');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
if("success" == JSON.parse(obj.response).status){
|
||
|
var selectedSlot = $('#col_' + funzionarioId).find('[data-id="' + oraInizio + '"]');
|
||
|
selectedSlot.addClass('first_half_hour available available-start');
|
||
|
selectedSlot.next().addClass('first_half_hour available-finish');
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
}else
|
||
|
alert('Non si hanno i permessi per creare una disponibilità');
|
||
|
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
AUI().one(calendar.constants.workspace+'delete_disponibilita').on(
|
||
|
'click',
|
||
|
|
||
|
function(event) {
|
||
|
|
||
|
event.preventDefault();
|
||
|
|
||
|
var oraInizio = $(calendar.constants.workspace +"oraInizio_disponibilita").val();
|
||
|
var oraFine = $(calendar.constants.workspace +"oraFineSelect_disponibilita").val();
|
||
|
var funzionarioId = $(calendar.constants.workspace + "funzionarioId").val();
|
||
|
var date = $("#datepicker").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
|
||
|
var presidio = calendar.constants.presidio;
|
||
|
|
||
|
// console.log('oraInizio ' + oraInizio);
|
||
|
// console.log('oraFine ' + oraFine);
|
||
|
// console.log('funzionarioId ' + funzionarioId);
|
||
|
// console.log('date ' + date);
|
||
|
// console.log('presidio ' + presidio);
|
||
|
|
||
|
if (confirm("Sei sicuro di voler cancellare?") == true) {
|
||
|
AUI().io.request(
|
||
|
calendar.constants.deleteDisponibilitaUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraInizio" : oraInizio,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraFine" : oraFine,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_date" : date,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_funzionarioId" : funzionarioId,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_presidio" : presidio
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per cancellare una disponibilità');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
if("success" == JSON.parse(obj.response).status){
|
||
|
var selectedSlot = $('#col_' + funzionarioId).find('[data-id="' + oraInizio + '"]');
|
||
|
selectedSlot.removeClass('first_half_hour available available-start');
|
||
|
selectedSlot.next().removeClass('first_half_hour available-finish');
|
||
|
}
|
||
|
else
|
||
|
alert('Non si hanno i permessi per cancellare una disponibilità');
|
||
|
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
AUI().one(calendar.constants.workspace+'save').on(
|
||
|
'click',
|
||
|
|
||
|
function(event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
var isValid = true;
|
||
|
$("[name*='descrizione'],[name*='telefono'],[name*='email']").each(function () {
|
||
|
if ($.trim($(this).val()) === '') {
|
||
|
isValid = false;
|
||
|
$(this).css({
|
||
|
"border": "1px solid red"
|
||
|
});
|
||
|
}
|
||
|
else {
|
||
|
$(this).css({
|
||
|
"border": "",
|
||
|
"background": ""
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var email = $("[name*='email']");
|
||
|
var val = email.val();
|
||
|
var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
|
||
|
var regexObj = new RegExp (regex);
|
||
|
var resultEmail = regexObj.test(val);
|
||
|
if(resultEmail === false){
|
||
|
isValid = false;
|
||
|
email.css({
|
||
|
"border": "1px solid red"
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var telefono = $("[name*='telefono']");
|
||
|
var val = telefono.val();
|
||
|
var regex = /^\d+$/;
|
||
|
var regexObjTelefono = new RegExp (regex);
|
||
|
var resultTelefono = regexObjTelefono.test(val);
|
||
|
if(resultTelefono === false){
|
||
|
isValid = false;
|
||
|
telefono.css({
|
||
|
"border": "1px solid red"
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if (isValid === false)
|
||
|
return;
|
||
|
|
||
|
var prenotazione = AUI().one(".popup-calendar "+ calendar.constants.workspace +"idPrenotazione").text(),
|
||
|
oraInizio = AUI().one(".popup-calendar "+ calendar.constants.workspace +"oraInizio").get('value');
|
||
|
oraFine = AUI().one(".popup-calendar "+ calendar.constants.workspace +"oraFineSelect").get('value'),
|
||
|
descrizione = AUI().one(".popup-calendar "+ calendar.constants.workspace +"descrizione").get('value');
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
telefono = AUI().one(".popup-calendar "+ calendar.constants.workspace +"telefono").get('value');
|
||
|
email = AUI().one(".popup-calendar "+ calendar.constants.workspace +"email").get('value');
|
||
|
|
||
|
|
||
|
if(prenotazione != ""){
|
||
|
if (confirm("Sei sicuro di voler fissare l'appuntamento?") == true) {
|
||
|
// console.log('inner SAVE');
|
||
|
AUI().io.request(
|
||
|
calendar.constants.createDisponibilita,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_prenotazioneId" : prenotazione,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraInizio" : oraInizio,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraFine" : oraFine,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_descrizione" : descrizione,
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_telefono" : telefono,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_email" : email
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per modificare la prenotazione');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
// var response = this.get('responseData');
|
||
|
// calendar.agenda.chiudiPopup();
|
||
|
// var day = $("#datepicker").val();
|
||
|
// var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
//
|
||
|
// if(response!=undefined && response!=null ){
|
||
|
// alert('ok')
|
||
|
// }
|
||
|
|
||
|
if("success" == JSON.parse(obj.response).status){
|
||
|
var response = this.get('responseData');
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
var day = $("#datepicker").val();
|
||
|
var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
}else
|
||
|
alert('Non si hanno i permessi per creare una prenotazione');
|
||
|
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
calendar.refresh();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|
||
|
} else {
|
||
|
if (confirm("Sei sicuro di voler fissare l'appuntamento?") == true) {
|
||
|
var funzionarioId = AUI().one(".popup-calendar "+ calendar.constants.workspace +"funzionarioId").val(),
|
||
|
professionistaId = AUI().one(".popup-calendar "+ calendar.constants.workspace +"professionistaId").val(),
|
||
|
dataAppuntamento = $("#datepicker").val();
|
||
|
|
||
|
AUI().io.request(
|
||
|
calendar.constants.newBookingUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_funzionarioId" : funzionarioId,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_professionistaId" : professionistaId,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_dataAppuntamento" : dataAppuntamento,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraInizio" : oraInizio,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_oraFine" : oraFine,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_descrizione" : descrizione,
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_telefono" : telefono,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_email" : email
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per aggiungere una nuova prenotazione');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
// var response = this.get('responseData');
|
||
|
// calendar.agenda.chiudiPopup();
|
||
|
// var day = $("#datepicker").val();
|
||
|
// var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
//
|
||
|
// if(response!=undefined && response!=null ){
|
||
|
// alert('ok');
|
||
|
// }
|
||
|
|
||
|
if("success" == JSON.parse(obj.response).status){
|
||
|
var response = this.get('responseData');
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
var day = $("#datepicker").val();
|
||
|
var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
}else
|
||
|
alert('Non si hanno i permessi per creare una prenotazione');
|
||
|
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
calendar.refresh();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
AUI().one(calendar.constants.workspace+'delete').on(
|
||
|
'click',
|
||
|
|
||
|
function(event) {
|
||
|
if (confirm("Sei sicuro di voler cancellare l'appuntamento?") == true) {
|
||
|
|
||
|
event.preventDefault();
|
||
|
|
||
|
var prenotazione = AUI().one(".popup-calendar "+ calendar.constants.workspace +"idPrenotazione").text(),
|
||
|
user = AUI().one(".popup-calendar "+ calendar.constants.workspace +"professionistaId").val();
|
||
|
var funzionario = $(calendar.constants.workspace + "funzionarioId").val();
|
||
|
|
||
|
AUI().io.request(
|
||
|
calendar.constants.deleteBookingUrl,
|
||
|
{
|
||
|
data: {
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_prenotazioneId" : prenotazione,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_userId" : user,
|
||
|
"_1_WAR_portoscalendarappointmentsportlet_funzionarioId" : funzionario
|
||
|
},
|
||
|
|
||
|
on: {
|
||
|
failure: function() {
|
||
|
alert('Non si hanno i permessi per rimuovere questa prenotazione');
|
||
|
},
|
||
|
success: function(event, id, obj) {
|
||
|
// console.log('/*/*/*/*/*/*')
|
||
|
// console.log($("#datepicker").val());
|
||
|
// console.log('/*/*/*/*/*/*')
|
||
|
// var response = this.get('responseData');
|
||
|
// calendar.agenda.chiudiPopup();
|
||
|
// var day = $("#datepicker").val();
|
||
|
// var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
//
|
||
|
// if(response!=undefined && response!=null ){
|
||
|
// alert('ok')
|
||
|
// }
|
||
|
|
||
|
if("success" == JSON.parse(obj.response).status){
|
||
|
var response = this.get('responseData');
|
||
|
var day = $("#datepicker").val();
|
||
|
var day_now = {"_1_WAR_portoscalendarappointmentsportlet_data" : day};
|
||
|
// Liferay.Portlet.refresh('#p_p_id_1_WAR_portoscalendarappointmentsportlet_', day_now);
|
||
|
}else
|
||
|
alert('Non si hanno i permessi per cancellare una prenotazione');
|
||
|
|
||
|
calendar.agenda.chiudiPopup();
|
||
|
calendar.refresh();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
);
|
||
|
},
|
||
|
|
||
|
viewMode: function() {
|
||
|
// console.log('viewMode');
|
||
|
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"oraInizio").prop("disabled", true);
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"descrizione").prop("disabled", true);
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"telefono").prop("disabled", true);
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"email").prop("disabled", true);
|
||
|
|
||
|
$(calendar.constants.workspace +"edit").hide();
|
||
|
$(calendar.constants.workspace +"save").hide();
|
||
|
|
||
|
$(calendar.constants.workspace +"delete").show();
|
||
|
$(calendar.constants.workspace +"delete_disponibilita").show();
|
||
|
$(calendar.constants.workspace +"save_disponibilita").hide();
|
||
|
},
|
||
|
|
||
|
editMode: function () {
|
||
|
// console.log('editMode');
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"oraInizio").prop("disabled", true);
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"descrizione").prop("disabled", false);
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"telefono").prop("disabled", false);
|
||
|
$(".popup-calendar "+ calendar.constants.workspace +"email").prop("disabled", false);
|
||
|
|
||
|
$(calendar.constants.workspace +"save").show();
|
||
|
$(calendar.constants.workspace +"edit").hide();
|
||
|
|
||
|
$(calendar.constants.workspace +"delete").hide();
|
||
|
$(calendar.constants.workspace +"delete_disponibilita").hide();
|
||
|
$(calendar.constants.workspace +"save_disponibilita").show();
|
||
|
},
|
||
|
|
||
|
resizePrenotazioni: function (eventi) {
|
||
|
$(window).resize(function () {
|
||
|
for (var i in eventi) {
|
||
|
var idCols = '#col_' + eventi[i].idFunzionario;
|
||
|
|
||
|
for (var j in eventi[i].prenotazioni) {
|
||
|
var inizio = eventi[i].prenotazioni[j].inizio;
|
||
|
var fine = eventi[i].prenotazioni[j].fine;
|
||
|
var dataId = eventi[i].prenotazioni[j].idPrenotazione;
|
||
|
var idDescrizione = "descrizione_" + i + "_" + j;
|
||
|
var targetStart = idCols + ' *[data-id="' + inizio + '"]';
|
||
|
var targetEnd = idCols + ' *[data-id="' + fine + '"]';
|
||
|
var bottom = $(targetEnd).offset().top;
|
||
|
calendar.agenda.positionDescription($('#' + idDescrizione), $(targetStart), bottom);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
setHourByStart: function(oraInizio) {
|
||
|
//var options = $('#_1_WAR_portoscalendarappointmentsportlet_oraInizio option');
|
||
|
//options = options.index($('#_1_WAR_portoscalendarappointmentsportlet_oraInizio option[value="'+oraInizio+'"]'));
|
||
|
|
||
|
setTimeout(function() {
|
||
|
$(".popup-calendar #_1_WAR_portoscalendarappointmentsportlet_oraInizio").val(oraInizio);
|
||
|
var options = $('#_1_WAR_portoscalendarappointmentsportlet_oraInizio option');
|
||
|
options = options.index($('#_1_WAR_portoscalendarappointmentsportlet_oraInizio option[value="'+oraInizio+'"]'));
|
||
|
calendar.agenda.changeSelectFine(options);
|
||
|
},300);
|
||
|
|
||
|
|
||
|
},
|
||
|
|
||
|
changeSelectFine: function(index) {
|
||
|
document.getElementById("_1_WAR_portoscalendarappointmentsportlet_oraFineSelect").selectedIndex = index;
|
||
|
|
||
|
setTimeout(function() {
|
||
|
var oraFine = $("#_1_WAR_portoscalendarappointmentsportlet_oraFineSelect").val();
|
||
|
$(".popup-calendar #_1_WAR_portoscalendarappointmentsportlet_oraFine").val(oraFine);
|
||
|
}, 300);
|
||
|
|
||
|
|
||
|
},
|
||
|
|
||
|
chiudiPopup: function() {
|
||
|
|
||
|
var workspace = calendar.constants.workspace;
|
||
|
$('.popup-calendar').slideUp();
|
||
|
|
||
|
$('.val-funzionario').html("");
|
||
|
$('.val-richiedente').html("");
|
||
|
$(".popup-calendar "+ workspace +"idPrenotazione").html("");
|
||
|
$(".popup-calendar "+ workspace +"oraInizio").val("");
|
||
|
$(".popup-calendar "+ workspace +"oraFine").val("");
|
||
|
$(".popup-calendar "+ workspace +"oraFineSelect").val("");
|
||
|
$(".popup-calendar "+ workspace +"descrizione").val("");
|
||
|
$(".popup-calendar "+ workspace +"funzionarioId").val("");
|
||
|
$(".popup-calendar "+ workspace +"dataAppuntamento").val("");
|
||
|
|
||
|
//Product Backlog Item 32934
|
||
|
$(".popup-calendar "+ workspace +"telefono").val("");
|
||
|
$(".popup-calendar "+ workspace +"email").val("");
|
||
|
|
||
|
$('.layer-popup').removeClass('active');
|
||
|
|
||
|
$('#disponibilitaPopUp.popup-calendar').slideUp();
|
||
|
$(".popup-calendar-disponibilita "+ workspace +"idPrenotazione").html("");
|
||
|
$(".popup-calendar-disponibilita "+ workspace +"oraInizio_disponibilita").val("");
|
||
|
$(".popup-calendar-disponibilita "+ workspace +"oraFineSelect_disponibilita").val("");
|
||
|
}
|
||
|
}
|
||
|
};
|