/**
* modals.js - magnificently moody modals
* Event system to ease management of modal load events.
*/
var modalsNS = odkmaker.namespace.load('odkmaker.modals');
var selectedFormKey = '';
var reportScheduleDate = undefined;
var frmKey = '';
var dataJson = '';
var OPEN_FORM_FOR_FUNCTION_OPEN_FORM = 1;
var OPEN_FORM_FOR_FUNCTION_COMPONENTS = 2;
var openFormForFunction = "";
var modals_init = function($)
{
var handlers = {
mainScreen: function($dialog){
$dialog
.find('.main_content_mobile_units').hide();
},
signinDialog: function($dialog)
{
$dialog
.find(':input').val('').end()
.find('h3').text(lbl_sign_in).end()
.find('.signinLink').removeClass('hide').end()
.find('.signupLink').addClass('hide').end()
.find('.toggleSignupLink').text(lbl_request_access).closest('p').show().end().end()
.find('.passwordLink').addClass('hide').end()
.find('.togglePasswordLink').text(lbl_forgot_your_password).closest('p').show().end().end()
.find('.signin_section').show().end()
.find('.requestaccount_section').hide();
},
accountDialog: function($dialog)
{
$dialog.find('#account_email').val(odkmaker.auth.currentUser.email);
},
openDialog: function($dialog)
{
var $formOwnerList = $dialog.find('.formowner');
var $searchTextBox = $dialog.find('.searchSession input.searchValue');
$formOwnerList.empty();
$dialog.find('.errorMessage')
.empty()
.slideUp();
$dialog.find('status').find('div')
.removeClass('waitingIcon')
.slideUp();
$('.openDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$('.openDialog .formpublic').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$formOwnerList.append('
' + lbl_loading + '');
$searchTextBox.val(lbl_waiting).attr('readonly', true);
//$('.openDialog .openFormSortSession input[value="Form name"]').prop('checked', true);
$('.openFormSortSession .headerSortDown').removeClass('headerSortDown');
$('.openFormSortSession .headerSortUp').removeClass('headerSortUp');
//$('.openFormSortSession .formNameHeader').addClass('headerSortUp');
if(OPEN_FORM_FOR_FUNCTION_COMPONENTS == openFormForFunction) {
$('.openDialog .modalButtonContainer .acceptLink').addClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .jqmClose').addClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .addComponents').removeClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .closeComponents').removeClass(CONST_CSS_CLASS_HIDE_ITEM);
} else {
$('.openDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .jqmClose').removeClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .addComponents').addClass(CONST_CSS_CLASS_HIDE_ITEM);
$('.openDialog .modalButtonContainer .closeComponents').addClass(CONST_CSS_CLASS_HIDE_ITEM);
}
$('.openDialog a.restrictions').off().on('click', function(){
jAlert(msg_open_form_restrictions);
});
//$formPublicList.append('' + lbl_loading + '');
var data = '';
var loadFormList = function(page){
$('.openDialog .modalContents .openEditHelpText').addClass(CONST_CSS_CLASS_HIDE_SESSION);
$.ajax({
url: '/formbuilder/openForm?page=' + page,
dataType: 'json',
type: 'GET',
cache: false,
complete: function()
{
},
success: function(response, status)
{
if(response.isBuildFormOnlyMy) {
$('.openDialog .formpublic').addClass(CONST_CSS_CLASS_HIDE_SESSION);
}
if(response.FormOwner != ''){
data += response.FormOwner;
//$formPublicList.append(response.FormPublic);
if(!response.Continue){
$formOwnerList.empty();
$('.openDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$formOwnerList.append(data);
var formsDeleted = $formOwnerList.find('.FormDeleted');
for(var i=0; i' + err_donot_have_priv + '')
.slideDown();
}else{
$('.openDialog .errorMessage')
.empty()
.append('' + err_could_not_open_form + '
')
.slideDown();
}
}
});
}
loadFormList(0);
},
openReportDialog: function($dialog)
{
var $reportOwnerList = $dialog.find('.reportowner');
var $searchTextBox = $dialog.find('.searchSession input.searchValue');
$reportOwnerList.empty();
$dialog.find('.errorMessage')
.empty()
.slideUp();
$dialog.find('status').find('div')
.removeClass('waitingIcon')
.slideUp();
$('.openReportDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$reportOwnerList.append('' + lbl_loading + '');
$searchTextBox.val(lbl_waiting).attr('readonly', true);
$('.openReportDialog .openReportSortSession .headerSortDown').removeClass('headerSortDown');
$('.openReportDialog .openReportSortSession .headerSortUp').removeClass('headerSortUp');
$('.openReportDialog .openReportSortSession .reportNameHeader').addClass('headerSortDown');
if (authNS.currentUser.runNow !== undefined && authNS.currentUser.runNow !== null && authNS.currentUser.runNow == true) {
$('.openReportDialog .copyExecuteLink').hide();
$('.openReportDialog .runNowLink').show();
} else {
$('.openReportDialog .copyExecuteLink').show();
$('.openReportDialog .runNowLink').hide();
}
var data = '';
var loadReportList = function(page){
$.ajax({
url: '/reportbuilder/openReport?page=' + page,
dataType: 'json',
type: 'GET',
cache: false,
complete: function()
{
},
success: function(response, status)
{
if(response.ReportOwner != ''){
data += response.ReportOwner;
if(!response.Continue){
$reportOwnerList.empty();
$('.openReportDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$reportOwnerList.append(data);
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
$('.openReportDialog .modalContents .scroll_contain').off().on('UpdateAction', function(){
$('.openReportDialog .modalContents .line_content_report_open').off().click(function(event){
$('.openReportDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedReportKey = $(this).find('.report_link').attr('id');
}).dblclick(function(event){
$('.openReportDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedReportKey = $(this).find('.report_link').attr('id');
event.preventDefault();
openReport();
});
}).trigger('UpdateAction');
}else{
loadReportList(page + 1);
}
}else{
if(page == 0){
$reportOwnerList.empty();
$reportOwnerList.append('' + lbl_report_not_found + '');
$('.openReportDialog .modalButtonContainer .acceptLink').addClass(CONST_CSS_CLASS_HIDE_SESSION);
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
}else{
$reportOwnerList.empty();
$('.openReportDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$reportOwnerList.append(data);
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
$('.openReportDialog .modalContents .scroll_contain').off().on('UpdateAction', function(){
$('.openReportDialog .modalContents .line_content_report_open').off().click(function(event){
$('.openReportDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedReportKey = $(this).find('.report_link').attr('id');
}).dblclick(function(event){
$('.openReportDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedReportKey = $(this).find('.report_link').attr('id');
event.preventDefault();
openReport();
});
}).trigger('UpdateAction');
}
}
updateDisplayDate4LocalTimeZone($reportOwnerList);
},
error: function(request, status, error)
{
$reportOwnerList.empty();
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
$('.openReportDialog .modalButtonContainer .acceptLink').addClass(CONST_CSS_CLASS_HIDE_SESSION);
if(getStatus(request) == 401){
$('.openReportDialog .errorMessage')
.empty()
.append('' + err_donot_have_priv + '
')
.slideDown();
}else{
$('.openReportDialog .errorMessage')
.empty()
.append('' + err_could_not_open_report + '
')
.slideDown();
}
}
});
}
loadReportList(0);
},
openReportScheduleDialog: function($dialog)
{
var drawCalendar = function(cal_current_date){
var loadReportScheduleList = function(page, month, year){
var ret = undefined;
waitForDataLoading(true);
//var clientTimezone = (new Date()).getTimezoneOffset() * 60 * 1000;
var date = new Date();
var clientTimezone = date.stdTimezoneOffset() * 60 * 1000;
var clientTimezoneDst = date.dst();
$.ajax({
url: '/reportbuilder/ReportScheduleServlet?fnId=ScheduleList&scheduleMonth=' + month + '&timezone=' + clientTimezone + '&timezonedst=' + clientTimezoneDst + '&scheduleYear=' + year + '&page=' + page,
dataType: 'json',
type: 'GET',
cache: false,
async: false,
complete: function()
{
},
success: function(response, status)
{
waitForDataLoading(false);
ret = response;
},
error: function(request, status, error)
{
waitForDataLoading(false);
if(getStatus(request) == 401){
$('.openSpecialDialog .errorMessage')
.empty()
.append('' + err_donot_have_priv + '
')
.slideDown();
}else{
$('.openSpecialDialog .errorMessage')
.empty()
.append('' + err_could_not_open_form + '
')
.slideDown();
}
}
});
return ret;
}
var month = cal_current_date.getMonth();
var year = cal_current_date.getFullYear();
var reportDataArray = loadReportScheduleList(0, month, year);
var cal_days_labels = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var cal_months_labels = ['January', 'February', 'March', 'April',
'May', 'June', 'July', 'August', 'September',
'October', 'November', 'December'];
var cal_days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var monthName = cal_months_labels[month];
var firstDay = new Date(year, month, 1);
var lastDay = new Date(year, month + 1, 0);
var startingDay = firstDay.getDay();
var monthLength = lastDay.getDate();
var dayYYYYMMDD = firstDay.getIntyyyyMMdd();
var html = '';
html += '';
var day = 1;
// this loop is for is weeks (rows)
for (var i = 0; i < 9; i++) {
// this loop is for weekdays (cells)
for (var j = 0; j <= 6; j++) {
html += '';
if (day <= monthLength && (i > 0 || j >= startingDay)) {
html += ' ';
html += day;
html += ' ';
html += '';
dayYYYYMMDD++;
day++;
}
html += ' | ';
}
// stop making rows if we've run out of days
if (day > monthLength) {
break;
} else {
html += '
';
}
}
html += '
';
$('.openReportScheduleDialog .ui-customDatepicker .ui-datepicker-month').empty().append(monthName);
$('.openReportScheduleDialog .ui-customDatepicker .ui-datepicker-year').empty().append(year);
$('.openReportScheduleDialog form').empty().append(html);
var getReportLink = function($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey){
var reportDate = parseInt($cell.attr('id'));
var $data = '';
if( last7Day_yyyyMMdd <= reportDate && reportDate <= curDate_yyyyMMdd){
var reportDateUTC = convertUTCyyyymmdd(reportDate, reportTimeHHmm);
if(reportDate == curDate_yyyyMMdd){
if(reportTimeHHmm <= curTimeHHmm){
//$data = $('').append(name);
$data = $('').append(name);
$data = $('').append($data);
}else{
$data = $('').append(name);
}
}else{
//$data = $('').append(name);
$data = $('').append(name);
$data = $('').append($data);
}
}else{
$data = $('').append(name);
}
$data.addClass('report-item').attr('data', reportTimeHHmm);
return $data;
}
var appendReportItemToCell = function($cell, $itemData){
if($cell){
var $items = $cell.find('.report-item');
if($items.length > 0){
var reportTimeHHmm = $itemData.attr('data');
for(var i=0; i<$items.length; i++){
var $item = $($items[i]);
var reportTimeHHmmTmp = $item.attr('data');
if(reportTimeHHmm < reportTimeHHmmTmp){
$itemData.insertBefore($item);
return;
}
}
$cell.append($data);
}else{
$cell.append($data);
}
}
}
var getCustomDaysOfReport = function(reportItem, month, year){
var days = [];
var reportDate = item.reportDate;
var reportTimeHHmm = parseInt(item.reportTimeHHmm);
var day = item.day;
var dt = toDateTime(reportDate, reportTimeHHmm);
var itemMonth = '00' + dt.getMonth();
var itemYear = '0000' + dt.getFullYear();
var itemYM = parseInt(itemYear.substring(itemYear.length - 4) + itemMonth.substring(itemMonth.length - 2));
var yearTmp = '0000' + year;
var monthTmp = '00' + month;
var ym = parseInt(yearTmp.substring(yearTmp.length - 4) + monthTmp.substring(monthTmp.length - 2));
while(itemYM < ym){
dt = dt.addDays(day);
itemMonth = '00' + dt.getMonth();
itemYear = '0000' + dt.getFullYear();
itemYM = parseInt(itemYear.substring(itemYear.length - 4) + itemMonth.substring(itemMonth.length - 2));
}
while(itemYM == ym){
days.push(dt.getDate());
dt = dt.addDays(day);
itemMonth = '00' + dt.getMonth();
itemYear = '0000' + dt.getFullYear();
itemYM = parseInt(itemYear.substring(itemYear.length - 4) + itemMonth.substring(itemMonth.length - 2));
}
return days;
}
if(reportDataArray && reportDataArray.report_data){
var curDate = new Date();
var curTimeHHmm = curDate.getIntHHmm();
var curDate_yyyyMMdd = curDate.getIntyyyyMMdd();
var last7Day = curDate.addDays(-7);
var last7Day_yyyyMMdd = last7Day.getIntyyyyMMdd();
for(var i=0; i 0)
{
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
$cell.append($data);
dayTmp++;
$cell = $('.openReportScheduleDialog form .calendar-day-content-' + dayTmp);
}*/
if(item && item.days){
for(var k = 0; k < item.days.length; k++){
var dayTmp = item.days[k];
$cells = $('.openReportScheduleDialog form .calendar-dayofweek-' + dayTmp);
for(var j = 0; j<$cells.length; j++){
$cell = $($cells[j]);
var id = $cell.attr('id');
if(id >= reportDate){
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
//$cell.append($data);
appendReportItemToCell($cell, $data);
}
}
}
}else{
var dayTmp = day;
$cells = $('.openReportScheduleDialog form .calendar-dayofweek-' + dayTmp);
for(var j = 0; j<$cells.length; j++){
$cell = $($cells[j]);
var id = $cell.attr('id');
if(id >= reportDate){
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
//$cell.append($data);
appendReportItemToCell($cell, $data);
}
}
}
break;
case '2':
// weekly
if(item && item.days){
for(var k = 0; k < item.days.length; k++){
var dayTmp = item.days[k];
$cells = $('.openReportScheduleDialog form .calendar-dayofweek-' + dayTmp);
for(var j = 0; j<$cells.length; j++){
$cell = $($cells[j]);
var id = $cell.attr('id');
if(id >= reportDate){
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
//$cell.append($data);
appendReportItemToCell($cell, $data);
}
}
}
}else{
var dayTmp = day;
$cells = $('.openReportScheduleDialog form .calendar-dayofweek-' + dayTmp);
for(var j = 0; j<$cells.length; j++){
$cell = $($cells[j]);
var id = $cell.attr('id');
if(id >= reportDate){
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
//$cell.append($data);
appendReportItemToCell($cell, $data);
}
}
}
break;
case '3':
// monthly
var $cell = $('.openReportScheduleDialog form .calendar-day-content-' + day);
if($cell.length == 0 && day == '31'){
day = '30';
$cell = $('.openReportScheduleDialog form .calendar-day-content-' + day);
}
if($cell.length == 0 && day == '30'){
day = '29';
$cell = $('.openReportScheduleDialog form .calendar-day-content-' + day);
}
if($cell.length == 0 && day == '29'){
day = '28';
$cell = $('.openReportScheduleDialog form .calendar-day-content-' + day);
}
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
appendReportItemToCell($cell, $data);
break;
case '4':
var days = getCustomDaysOfReport(item, month, year);
for(var k = 0; k < days.length; k++){
day = days[k];
var $cell = $('.openReportScheduleDialog form .calendar-day-content-' + day);
var $data = getReportLink($cell, name, last7Day_yyyyMMdd, curDate_yyyyMMdd, curTimeHHmm, reportTimeHHmm, reportKey);
appendReportItemToCell($cell, $data);
}
break;
}
}
}
}
if(!reportScheduleDate){
reportScheduleDate = new Date();
}
drawCalendar(reportScheduleDate);
$('.openReportScheduleDialog .ui-customDatepicker .ui-datepicker-prev').off().click(function(){
reportScheduleDate = new Date(reportScheduleDate.getFullYear(), reportScheduleDate.getMonth() - 1, 1);
drawCalendar(reportScheduleDate);
});
$('.openReportScheduleDialog .ui-customDatepicker .ui-datepicker-next').off().click(function(){
reportScheduleDate = new Date(reportScheduleDate.getFullYear(), reportScheduleDate.getMonth() + 1, 1);
drawCalendar(reportScheduleDate);
});
//$('.openReportScheduleDialog .openReportScheduleDialogBtnSession .btnNow').off().click(function(){
$('.openReportScheduleDialog .btnNow').off().click(function(){
reportScheduleDate = new Date();
drawCalendar(reportScheduleDate);
});
},
dataAuditReportDialog: function($dialog)
{
if(!dataNS.currentReport || dataNS.currentReport.type != '2'){
return;
}
},
openSpecialDialog: function($dialog)
{
var $formOwnerList = $dialog.find('.formowner');
var $searchTextBox = $dialog.find('.searchSession input.searchValue');
$searchTextBox.val(lbl_waiting).attr('readonly', true);
$formOwnerList.empty();
$dialog.find('.errorMessage')
.empty()
.slideUp();
$dialog.find('status').find('div')
.removeClass('waitingIcon')
.slideUp();
$('.openSpecialDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$formOwnerList.append('' + lbl_loading + '');
//$('.openSpecialDialog .openFormSortSession input[value="Form name"]').prop('checked', true);
$('.openFormSortSession .headerSortDown').removeClass('headerSortDown');
$('.openFormSortSession .headerSortUp').removeClass('headerSortUp');
//$('.openFormSortSession .formNameHeader').addClass('headerSortUp');
var data = '';
var loadFormList = function(page){
$.ajax({
url: '/formbuilder/openForm?pubOnly=true&page=' + page,
dataType: 'json',
type: 'GET',
cache: false,
complete: function()
{
},
success: function(response, status)
{
if(response.FormOwner != ''){
data += response.FormOwner;
if(!response.Continue){
$formOwnerList.empty();
$('.openSpecialDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$formOwnerList.append(data);
$formOwnerList.find('.line_content_form_open.Draft').remove();
//$('.openSpecialDialog .openFormSortSession .formNameHeader').trigger('click');
/*CO-3924: Change default open form settings
We want to default the open form screen to show the last modified record first. Currently i believe it is by name but we want it so the last modified record shows first when opening a form.
*/
$('.openSpecialDialog .openFormSortSession .formModifiedDateHeader').removeClass('headerSortUp').addClass('headerSortDown').trigger('click');
/*
hqkhanh fix 0025536: On IE, not auto focus to search box when open form
*/
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
$('.openSpecialDialog .modalContents .scroll_contain').off().on('UpdateAction', function(){
$('.openSpecialDialog .modalContents .line_content_form_open').off().click(function(event){
$('.openSpecialDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedFormKey = $(this).find('.form_link').attr('id');
}).dblclick(function(event){
$('.openSpecialDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedFormKey = $(this).find('.form_link').attr('id');
event.preventDefault();
openSpecialForm();
});
}).trigger('UpdateAction');
}else{
loadFormList(page + 1);
}
}else{
if(page == 0){
$('.openSpecialDialog .modalButtonContainer .acceptLink').addClass(CONST_CSS_CLASS_HIDE_SESSION);
}else{
$formOwnerList.empty();
$('.openSpecialDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
$formOwnerList.append(data);
/*
hqkhanh fix 0025536: On IE, not auto focus to search box when open form
*/
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
$('.openSpecialDialog .modalContents .scroll_contain').off().on('UpdateAction', function(){
$('.openSpecialDialog .modalContents .line_content_form_open').off().click(function(){
$('.openSpecialDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedFormKey = $(this).find('.form_link').attr('id');
}).dblclick(function(event){
$('.openSpecialDialog .modalContents .selected').removeClass('selected');
$(this).addClass('selected');
selectedFormKey = $(this).find('.form_link').attr('id');
event.preventDefault();
openSpecialForm();
});
}).trigger('UpdateAction');
}
}
updateDisplayDate4LocalTimeZone($formOwnerList);
},
error: function(request, status, error)
{
$formOwnerList.empty();
$('.openSpecialDialog .modalButtonContainer .acceptLink').addClass(CONST_CSS_CLASS_HIDE_SESSION);
/*
hqkhanh fix 0025536: On IE, not auto focus to search box when open form
*/
$searchTextBox.attr('readonly', false).val('').blur();
$searchTextBox.focus();
if(getStatus(request) == 401){
$('.openSpecialDialog .errorMessage')
.empty()
.append('' + err_donot_have_priv + '
')
.slideDown();
}else{
$('.openSpecialDialog .errorMessage')
.empty()
.append('' + err_could_not_open_form + '
')
.slideDown();
}
}
});
}
loadFormList(0);
},
fvOpenDialog: function($dialog)
{
$dialog.find('.errorMessage')
.empty()
.slideUp();
$dialog.find('status').find('div')
.removeClass('waitingIcon')
.slideUp();
$('.openDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
loadProjectComboBox();
},
fvOpenIncompleteDialog: function($dialog)
{
//$formPublicList.empty();
$dialog.find('.errorMessage')
.empty()
.slideUp();
$dialog.find('status').find('div')
.removeClass('waitingIcon')
.slideUp();
$('.openDialog .modalButtonContainer .acceptLink').removeClass(CONST_CSS_CLASS_HIDE_SESSION);
loadProjectIncompleteComboBox();
},
saveAsDialog: function($dialog)
{
$dialog.find('.saveAs_name').val($('.header #renameFormField').val()).off().keyup(function(e) {
if((odkmaker.data.formSettings.formIconText || '') != ''){
}else{
$('.saveAsDialog .publicAdditionalInfo #formMenuName').empty().append($(this).val());
}
});
if((odkmaker.data.formSettings.formIconText || '') != ''){
}else{
$('.saveAsDialog .publicAdditionalInfo #formMenuName').empty().append($('.header #renameFormField').val());
}
$('input[name="r01"]').prop('checked', false);
},
makeFormPublicDialog: function($dialog)
{
},
exportDialog: function($dialog)
{
$dialog.find('.exportCodeContainer pre').text(odkmaker.data.serialize());
},
exportJsonDialog: function($dialog)
{
var jsonData = {'controls': odkmaker.data.extract().controls};
jsonData.formSettings = odkmaker.data.formSettings;
jsonData.record_names_array = glbHashObject['record_names_array'];
$dialog.find('.exportCodeContainer pre').text(JSON.stringify(jsonData));
},
// previewForm: function($dialog)
// {
// makeParamater();
// },
// previewAndroid: function($dialog)
// {
// makeParamater();
// }
};
$('.modal').jqm({
onShow: function(hash) {
_.each(handlers, function(callback, key)
{
if (hash.w.hasClass(key))
callback(hash.w, hash.t);
});
hash.o.prependTo('body');
hash.w.fadeIn('slow');
},
onHide : function(hash) {
hash.w.fadeOut('slow',function(){ hash.o.remove(); });
},
modal: true
});
/*
$('.modal').jqm({
modal: true,
onShow: function(jqm)
{
_.each(handlers, function(callback, key)
{
if (jqm.w.hasClass(key))
callback(jqm.w, jqm.t);
});
jqm.w.fadeIn('slow');
jqm.o.fadeIn('slow');
},
onHide: function(jqm)
{
jqm.w.fadeOut('slow');
jqm.o.fadeOut('slow');
}
});
*/
// Apply toolbar icons : Open/Open Special
// same as menu items : Open/Open Special in BuildForms GUI
$.live('a[rel=modal], .toolBar4MenuBuildForm .buildFormIconOpen, .toolBar4MenuBuildForm .buildFormIconOpenSpecial', 'click', function(event)
{
event.preventDefault();
var $this = $(this);
openFormForFunction = "";
$('.previewForm').removeClass('previewAndroid');
$('.previewForm').removeClass('previewBlackberry');
if($this.hasClass('previewAndroid')){
getModalSelector($this.attr('href')).addClass('previewAndroid');
}
if($this.hasClass('previewBlackberry')){
getModalSelector($this.attr('href')).addClass('previewBlackberry');
}
if ($this.hasClass('authRequired') && (odkmaker.auth.currentUser === null))
{
$('.signinDialog').jqmShow();
return;
}
else if ($this.hasClass('destructive'))
{
if((dataNS.currentForm != undefined || $('.workspace:visible').children().length != 0) && needToConfirm){
jConfirm(msg_confirm_unsaved_changes, lbl_conf_dlg, function(answer) {
if(answer){
getModalSelector($this.attr('href')).jqmShow();
}
});
}else{
getModalSelector($this.attr('href')).jqmShow();
}
}else if ($this.hasClass('fvNewForm') || $this.hasClass('fvOpenForm'))
{
if(needToConfirmFV){
jConfirm(msg_confirm_fv_unsaved_changes, lbl_conf_dlg, function(answer) {
if(answer){
getModalSelector($this.attr('href')).jqmShow();
}
});
}else{
getModalSelector($this.attr('href')).jqmShow();
}
}else{
getModalSelector($this.attr('href')).jqmShow();
}
});
$.live('.toolBar4MenuBuildReport .buildReportIconOpen', 'click', function(event)
{
event.preventDefault();
var $this = $(this);
if ($this.hasClass('authRequired') && (odkmaker.auth.currentUser === null))
{
$('.signinDialog').jqmShow();
return;
}
else if ($this.hasClass('destructive'))
{
if((dataNS.currentReport != undefined || $('.workspace:visible').children().length != 0) && needToConfirmReport){
jConfirm(msg_confirm_report_unsaved_changes, lbl_conf_dlg, function(answer) {
if(answer){
getModalSelector($this.attr('href')).jqmShow();
}
});
}else{
getModalSelector($this.attr('href')).jqmShow();
}
}else{
getModalSelector($this.attr('href')).jqmShow();
}
});
$.live('.toolBar4MenuBuildReport .buildReportIconSchedule', 'click', function(event)
{
event.preventDefault();
var $this = $(this);
if ($this.hasClass('authRequired') && (odkmaker.auth.currentUser === null))
{
$('.signinDialog').jqmShow();
return;
}else{
getModalSelector($this.attr('href')).jqmShow();
}
});
$('.modal form').submit(function(event)
{
event.preventDefault();
$(this).closest('.modal')
.find('.acceptLink')
.click();
});
$.live('.openDialog .jqmClose', 'click', function(event)
{
if(OPEN_FORM_FOR_FUNCTION_COMPONENTS == openFormForFunction) {
$('.componentsDialog').jqmShow();
}
});
};
Date.prototype.getIntyyyyMMdd = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return parseInt(yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0])); // padding
};
Date.prototype.getIntHHmm = function() {
// return number 1HHmm : 10101
var hh = this.getHours().toString();
var mm = this.getMinutes().toString();
return parseInt('1' + (hh[1]?hh:"0"+hh[0]) + (mm[1]?mm:"0"+mm[0])); // padding
};
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + parseInt(days));
return this;
};
/**
* Process open Hyperlink for ReportWriter on Scheduler
* @param reportKey
* @param createDate
*/
function openHyperlinkReportWriterOnScheduler(reportKey, createDate) {
// Call AJAX request
waitForDataLoading(true);
$.ajax({
url : '/GetHyperlinkReportServlet',
dataType : 'json',
type : 'POST',
data : {
reportKey : reportKey
,createDate : createDate
},
cache : false,
success : function(response, status) {
try {
if (response.hyperlink !== undefined
&& response.hyperlink !== null
&& response.hyperlink !== ''
) {
// Execute hyperlink
$('#downloadFrame').attr('src', response.hyperlink);
} else {
// The current report may be deleted
if (response.error !== undefined
&& response.error !== null
&& response.error !== ''
) {
writeToLogInfoRequired('response.error : ' + response.error);
}
jAlert(msg_error_in_get_hyperlink_report_writer);
}
} catch (e) {
}
},
complete: function() {
waitForDataLoading(false);
},
error : function() {
jAlert(msg_unknown_error);
}
});
}
/*
convert yyyymmdd with current time and timezone to yyyymmdd utc
*/
function convertUTCyyyymmdd(yyyymmdd, reportTimeHHmm){
var yyyymmddTmp = yyyymmdd + '00000000';
var year = yyyymmddTmp.substring(0,4);
var month = yyyymmddTmp.substring(4,6);
var day = yyyymmddTmp.substring(6,8);
var reportTimeHHmmTmp = reportTimeHHmm + '00000';
var hh = reportTimeHHmmTmp.substring(1,3);
var mm = reportTimeHHmmTmp.substring(3,5);
var currentDate = new Date();
currentDate.setMonth(month - 1);
currentDate.setDate(day);
currentDate.setYear(year);
currentDate.setHours(hh);
currentDate.setMinutes(mm);
currentDate.setSeconds(0);
var yyyy = currentDate.getUTCFullYear().toString();
var mm = (currentDate.getUTCMonth()+1).toString(); // getMonth() is zero-based
var dd = currentDate.getUTCDate().toString();
return parseInt(yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0])); // padding
}
function toDateTime(yyyymmdd, reportTimeHHmm){
var yyyymmddTmp = yyyymmdd + '00000000';
var year = yyyymmddTmp.substring(0,4);
var month = yyyymmddTmp.substring(4,6);
var day = yyyymmddTmp.substring(6,8);
var reportTimeHHmmTmp = reportTimeHHmm + '00000';
var hh = reportTimeHHmmTmp.substring(1,3);
var mm = reportTimeHHmmTmp.substring(3,5);
var currentDate = new Date();
currentDate.setMonth(month - 1);
currentDate.setDate(day);
currentDate.setYear(year);
currentDate.setHours(hh);
currentDate.setMinutes(mm);
currentDate.setSeconds(0);
return currentDate;
}
function updateDisplayDate4LocalTimeZone(formList){
var formItems = formList.find('.modified_date, .form_date');
for(var i=0; i