/**
* This object will handle all the Create template save,cancel,run actions
*
* @class lexisnexis.component.CreateTemplateAction
*
*/
lexisnexis.component.CreateTemplateAction = lexisnexis.component.Component.extend({
data : {
saveTemplateId : '#saveTemplateModalBtn',
renameSaveTemplateId :'#ln_saveTemplate',
saveTemplateUrl : '',
cancelTemplateId : '#cancelTemplateBtn',
checkTemplateStatusURL : 'checkTempFilterStatus',
cancelFilterURL : 'cancelFilters',
clearFiltersMsgDivId : '#clearFiltersMsgDiv',
clearFiltersBtnId: '#clearFiltersBtn',
redirect:false,
valid: true
},
/**
* register all the action handlers
*
* @method ready
*/
ready : function() {
var cs = this;
cs.registerSaveTemplateAction();
cs.registerRenameSaveTemplateAction();
//cs.registerCancelTemplateAction();
cs.CancelTemplateAction();
cs.registerClearTemplateAction();
cs.hideRenameSaveErrorMsgAction();
//cs.cancelRenameOnClickAction();
cs.renameTemplateAction(cs);
cs.cancelRenameRemplateAction();
cs.changeSaveAsAction();
cs.registerSaveAsCreateTemplateAction();
cs.saveTemplateConfirmation(cs);
cs.registerSaveButtonClickedOnModel();
cs.validateCreateTemplateName();
},
validateCreateTemplateName: function(){
$('#templateNameSaveTxt').on('keyup', function(e) {
if (!isValidateSearch(e,'#templateNameSaveTxt', false)) {
cs.data.valid = false;
}else{
cs.data.valid = true;
}
});
$('#templateReNameSaveAsTxt').on('keyup', function(e) {
$('#ln-errorMsgRenameSaveAsTemp').html(""); // Removing the error message for each initial pop up load
if (!isValidateSearch(e,'#templateReNameSaveAsTxt', false)) {
cs.data.valid = false;
}else{
cs.data.valid = true;
}
});
/* $('#renameTxt').on('keyup', function(e) {
if (!isValidateSearch(e,'#renameTxt')) {
cs.data.valid = false;
}else{
cs.data.valid = true;
}
});*/
},
goToRefererPage: function(){
if(LN.REFERERPAGE){
window.location.href = LN.REFERERPAGE;
}
},
/**
* Handle "Cancel Template for unsaved filters" on the Create /Edit template page
*
* @method CancelTemplateAction
*/
CancelTemplateAction : function() {
var cs = this;
$(cs.data.cancelTemplateId).click(function(e) {
$.ajax({ url : cs.data.checkTemplateStatusURL,
type : "POST",
success : function(data, textStatus, jqXHR) {
if (data.isTempFilterApplied) {
$('#cancelTemplateMsgDialog').modal('show');
$("button#cancelTemplateMsgYes").click(function(e) {
$('#cancelTemplateMsgDialog').modal('hide');
cs.trimTemplateName(".ln-template-title-ellip", 30);
cs.saveTemplate(true);
});
$("button#cancelTemplateMsgNo").click(function(e) {
LN.debug("running no button click ajax");
$.ajax({
url : cs.data.cancelFilterURL,
type : "POST",
success : function() {
LN.debug("inside success of no click");
$("div#cancelTemplateMsgDialog").modal("hide");
cs.trimTemplateName("#ln_template_activeName", 30);
cs.goToRefererPage();
}
});
});
}else{
cs.goToRefererPage();
}
}
});
});
},
/**
* register for save button click and save the template
*
* @method registerSaveTemplateAction
*/
registerSaveTemplateAction : function() {
var cs = this;
$(cs.data.saveTemplateId).click(function(e) {
e.preventDefault();
/* Sending redirect is false, Once saved need be on same page*/
LN.debug("registerSaveTemplateAction ...");
LN.getPage().registerEvent(EVENT_TYPES.COMPARISON_PEER_GROUP_SUCCESS,
cs, function(){
$("#templateNameSaveTxt").val(''); //1043
cs.saveTemplate(false);
},true);
LN.getPage().validateSelectedComparisonPeerGroup();
});
},
registerRenameSaveTemplateAction : function() {
var cs = this;
$(cs.data.renameSaveTemplateId).click(function(e) {
e.preventDefault();
/* Sending redirect is false, Once saved need be on same page*/
LN.debug("registerRenameSaveTemplateAction ...");
LN.getPage().registerEvent(EVENT_TYPES.COMPARISON_PEER_GROUP_SUCCESS,
cs, function(){
cs.renameSaveTemplate();
},true);
LN.getPage().validateSelectedComparisonPeerGroup();
});
},
/**
* function to reload the page after reload
*/
reloadPage : function(type) {
$.ajax({
url : LN.getContextPath()+'/clearFilters?type='+type,
type : "POST",
success : function() {
location.reload();
}
});
},
/**
* Handle "Clear Template" on the Create /Edit template page
*
* @method registerClearTemplateAction
*/
registerClearTemplateAction : function() {
var cs = this;
$('#CreateTemplateClearAll').click(function(e) {
var type = "clearAllFilters";
cs.reloadPage(type);
});
$('#CreateTemplateClearPageOnly').click(function(e) {
var type = "clearPageFilter";
cs.reloadPage(type);
});
$(cs.data.clearFiltersBtnId).click(function(e) {
$(cs.data.clearFiltersMsgDivId).modal();
});
},
/**
* Handle "Save Template" on the Create /Edit template page
*
* @method saveTemplate
*/
saveTemplate : function() {
var cs = this;
var templateId = $("#createTemplateIdHid").val();
if(templateId == 0){
$('#saveTemplateModal').modal({
backdrop: 'static',
keyboard: 'false'
});
$('#ln-errorMsgSaveTemp').html("");// Removing the error message for each initial pop up load
$('#templateNameSaveTxt').parent().next(".error").remove();
} else {
var existingTemplateName = $("#ln_renameLbl").text().trim(); // $('#renameTxt').val().trim();
$('#existingTemplateName_saveAs').html(existingTemplateName); // Setting the existing template name in save as modal
$('#renameSaveTemplateModal').modal({
backdrop: 'static',
keyboard: 'false'
}
);
$('.saveAs_OldTemp').prop('checked',true);
$('#templateReNameSaveAsTxt').val('');
$('#templateReNameSaveAsTxt').parent().next(".error").remove();
if($('.saveAs_OldTemp').is(':checked')){
$("#saveAs_TemplateName").hide();
}
$('#ln-errorMsgRenameSaveTemp').html(""); // Removing the error message for each initial pop up load
$('#ln-errorMsgRenameSaveAsTemp').html("");
}
},
// save button clicked on Model
registerSaveButtonClickedOnModel : function(){
var cs = this;
var regex = new RegExp("^[\.\,a-zA-Z0-9\b$_-\\s]+$");
$("#createTemplateSave").click(function(e) {
// if($('#templateNameSaveTxt').val().match(regex)){
var templateName = $("#saveTemplateModal #templateNameSaveTxt").val().trim();
var allProvidersRegex = /^[a][l][l][\s]*[p][r][o][v][i][d][e][r][s]$/;
/* if(LN.containsSpecialCharacters(templateName)){
$('#ln-errorMsgSaveTemp').html("Special characters are not allowed");
return;
}*/
// if(templateName.length > 0 && (!$('#saveTemplateModal #templateNameSaveTxt').val().match(regex))){
if(templateName.length > 0 && (!templateName.match(regex))){
return false;
}else if(templateName != "" && templateName.toLowerCase().match(allProvidersRegex)){
$('#ln-errorMsgSaveTemp').html("All Providers is a protected system template name.");
return;
}else {
$('#ln-errorMsgSaveTemp').html("");
}
var templateId = $("#createTemplateIdHid").val();
var templateVersion;
/*Need remove after ajax prefilter function started working */
var token = $(window.location).attr('search');
if (templateName.length > 0) {
if (templateName.length <= 60) {
LN.getPage().registerEvent(EVENT_TYPES.COMPARISON_PEER_GROUP_SUCCESS,
cs, function(){
$.ajax({
url : cs.data.saveTemplateUrl + token,
type : "POST",
data : {
"templateName" : templateName,
"templateId" : templateId,
"templateVersion" : templateVersion
},
success : function(data) {
LN.debug("inside success of save template");
// Checking template name already exists or not
if (data['templateId'] == 0) {
$('#ln-errorMsgSaveTemp').html("Template name already exists.");
} else {
sessionStorage.SHOW_UNSAVED_MODAL === 'false' ;
$("div#saveTemplateModal").modal('hide');
//window should not scroll when pop up is visible
if ( $('#ln_topNav ul .ln-selected a').text() == 'Home' ) {
$("#ln_renameLbl").html('All Providers');
} else {
$("#ln_renameLbl").html(templateName); // Added to display the template name after save.
cs.trimTemplateName("#ln_template_activeName", 30);
$(".ln_renameBtn").css("display","inline");
}
// Saving template name, id and version
$("#createTemplateIdHid").val(data['templateId']);
$("#createTemplateNameHid").val(data['templateName']);
$("#templateVersionHid").val(data['templateVersionId']);
$("#save-TemplateName").html(templateName);
$("#saveTemplateConfirmModal").modal('show');
}// if (data['templateId'] == 0)
},
error : function(data) {
$.growl({title : "",message : "Error Occured! Template not saved"});
}
});// end outer ajax
},true);
LN.getPage().validateSelectedComparisonPeerGroup();
} else {
$('#ln-errorMsgSaveTemp').html("Please enter a template name not to exceed 60 characters.");
} // if (templateName.length <= 60)
} else {
$('#ln-errorMsgSaveTemp').html("Please enter a template name.");
}
// End of save new template....
//}
});
},
renameSaveTemplate: function(){
var cs = this;
var existingTemplateName = $("#ln_renameLbl").text().trim(); // $('#renameTxt').val().trim();
var templateId= $("#createTemplateIdHid").val();
var updatetemplateReName ='';
var templateVersion = $("#templateVersionHid").val().trim();
var token = $(window.location).attr('search');
var ajaxUrl = '';
$('#ln-errorMsgRenameSaveTemp').html(""); // Removing the error message
updatetemplateReName = $('#renameTxt').val().trim();
templateId= $("#createTemplateIdHid").val();
ajaxUrl="renameTemplate";
var allProvidersRegex = /^[a][l][l][\s]*[p][r][o][v][i][d][e][r][s]$/;
var regex = new RegExp("^[\.\,a-zA-Z0-9\b$_-\\s]+$");
if (updatetemplateReName.length > 0) {
if (updatetemplateReName.length <= 60) {
if(updatetemplateReName!="" && updatetemplateReName.toLowerCase().match(allProvidersRegex)){
$.growl({
title : "",
message : "All Providers is a protected system template name."
});
$("#ln_renameLbl").html(existingTemplateName); // Added to display the template name after save.
$("#ln_renameLbl").css('display', 'inline');
$(".ln_renameBtn").show();
$('.ln_saveBtn').hide(); // Hide save and cancel once rename template completes
$('.renameTxt').hide(); // Hide the text box
$("#createTemplateIdHid").val(templateId);
$("#createTemplateNameHid").val(existingTemplateName);
$("#templateVersionHid").val(templateVersion);
return false;
}
if(!updatetemplateReName.match(regex)){
$.growl({
title : "",
message : "You are only allowed to use the following special characters: . (Space) _ , - $"
});
/*$("#ln-errorMsgRenameSaveTemp").html("You are only allowed to use the following special characters: . (Space) _ , - $");*/
$("#ln_renameLbl").html(existingTemplateName); // Added to display the template name after save.
$("#ln_renameLbl").css('display', 'inline');
$(".ln_renameBtn").show();
$('.ln_saveBtn').hide(); // Hide save and cancel once rename template completes
$('.renameTxt').hide(); // Hide the text box
$("#createTemplateIdHid").val(templateId);
$("#createTemplateNameHid").val(existingTemplateName);
$("#templateVersionHid").val(templateVersion);
return false;
}
$.ajax({
url : ajaxUrl + token,
type : "POST",
data : {
"templateName" : updatetemplateReName,
"templateId" : templateId,
"templateVersion" : templateVersion
},
success : function(data){
LN.debug("Inside rename - save as new template");
if(data['templateId'] == 0){
//$('#ln-errorMsgRenameSaveTemp').html("Template name already exists.")
$.growl({
title : "",
message : "Template name already exists."
});
$("#ln_renameLbl").html(existingTemplateName); // Added to display the template name after save.
$("#ln_renameLbl").css('display', 'inline');
$(".ln_renameBtn").show();
$('.ln_saveBtn').hide(); // Hide save and cancel once rename template completes
$('.renameTxt').hide(); // Hide the text box
$("#createTemplateIdHid").val(templateId);
$("#createTemplateNameHid").val(existingTemplateName);
$("#templateVersionHid").val(templateVersion);
}else{
if ( $('#ln_topNav ul .ln-selected a').text() == 'Home' ) {
$("#ln_renameLbl").html('All Providers');
} else {
$("#ln_renameLbl").html(updatetemplateReName); // Added to display the template name after save.
$('#ln_renameLbl').css('display', 'inline');
$(".ln_renameBtn").show();
$('.ln_saveBtn').hide(); // Hide save and cancel once rename template completes
$('.renameTxt').hide(); // Hide the text box
$("#createTemplateIdHid").val(data['templateId']);
$("#createTemplateNameHid").val(updatetemplateReName);
$("#templateVersionHid").val(data['templateVersionId']);
//$(".ln-template-title-ellip").ellipsis({lines: 1});
cs.trimTemplateName(".ln-template-title-ellip", 30);
$.growl({
title : "",
message : "Your template <b>" + updatetemplateReName + "</b> has renamed successfully."
});
}
}
$("#createTemplateForm :input").removeAttr('disabled');
$("#ln_filter-container :input").removeAttr('disabled');
//Defect 600. Disable Run after Renaming template if provider count is zero
LN.debug("Provider Count = "+$('#ln_providerCount').text());
if ($('#ln_providerCount').text() != '0') {
$("#ln_saveTemplateWrapper :input").removeAttr('disabled');
} else {
$('#saveTemplateModalBtn').removeAttr('disabled');
$('#clearFiltersBtn').removeAttr('disabled');
$('#cancelTemplateBtn').removeAttr('disabled');
}
}
});// end of ajax
} else {
//$('#ln-errorMsgRenameSaveTemp').html("Please enter a template name not to exceed 60 characters.");
} // if (templateName.length <= 60)
} else {
$('#ln-errorMsgRenameSaveTemp').html("<br/>Please enter a template name.");
}
},
hideRenameSaveErrorMsgAction : function(){
$("#renameTxt").focus(function() {
//$("#ln_renameTxt").html("");
$('#ln-errorMsgRenameSaveTemp').html("");
});
},
cancelRenameOnClickAction : function(){
$('#ln_Providers_Count_Panel_down_arrow').on('click',function(e){
$('#ln_cancelTemplate').click();
});
$('.fa-question').on('click',function(e){
$('#ln_cancelTemplate').click();
});
$('#ln_ppm_layout').on('click',function(e){
LN.debug("inside the document click");
if(e.target.id == 'ln_saveTemplate' ||e.target.id == 'renameTemplate' ||e.target.id == 'renameTxt' ||e.target.id == 'ln_cancelTemplate' ){
return false;
}else{
LN.debug("document click removed");
$('#ln_ppm_layout').off('click');
$('#ln_cancelTemplate').click();
}
});
},
renameTemplateAction : function(cs){
$('#renameTemplate').bind('click', function() {
$("#renameTxt").val($("#ln_renameLbl").text().trim());
$('.renameTxt').css('display', 'inline');
$('#ln_renameLbl').css('display', 'none');
$('.ln_renameBtn').css('display', 'none');
$('.ln_saveBtn').css('display', 'inline');
//$("#createTemplateForm :input").prop('disabled', true);
//$("#ln_saveTemplateWrapper :input").prop('disabled', true);
//$("#ln_filter-container :input").prop('disabled', true);
//$("#ln_topmenu_dataset_list").css('display', 'inline');
//$('#ln_topmenu_dataset_list').css("visibility", "hidden");
$('[data-toggle="dropdown"]').parent().removeClass('open');
//LN.showOpaqueAjaxIndicator('#quick-dataset');
cs.cancelRenameOnClickAction();
});
},
cancelRenameRemplateAction : function(){
$('#ln_cancelTemplate').bind('click',function(){
$('#ln_renameLbl').css('display', 'inline');
$('.renameTxt').css('display', 'none');
$('.ln_renameBtn').css('display', 'inline');
$('.ln_saveBtn').css('display', 'none');
//$("#createTemplateForm :input").removeAttr('disabled');
if ($('#ln_providerCount').text() != '0') {
$("#ln_saveTemplateWrapper :input").removeAttr('disabled');
} else {
$('#saveTemplateModalBtn').removeAttr('disabled');
$('#clearFiltersBtn').removeAttr('disabled');
$('#cancelTemplateBtn').removeAttr('disabled');
}
//$("#ln_filter-container :input").removeAttr('disabled');
$('#ln-errorMsgRenameSaveTemp').html("");
});
},
changeSaveAsAction : function(){
$(".saveAs_NewTemp").change(function(){
$("#saveAs_TemplateName").show();
});
$(".saveAs_OldTemp").change(function(){
$("#saveAs_TemplateName").hide();
$('#ln-errorMsgRenameSaveAsTemp').html("");
});
},
registerSaveAsCreateTemplateAction : function(){
$('#createTemplateSaveAs').click(function(e){
LN.debug("how many times....");
var updatetemplateReName ='';
var templateVersion = $("#templateVersionHid").val().trim();
var token = $(window.location).attr('search');
var ajaxUrl="saveTemplate";
$('#ln-errorMsgRenameSaveAsTemp').html(""); // Removing the error message
//$("#templateReNameSaveAsTxt").parent().next(".error").remove();
if($('.saveAs_OldTemp').is(':checked')){
updatetemplateReName = $('#ln_renameLbl').text().trim();
templateId= $("#createTemplateIdHid").val();
}else{
updatetemplateReName = $("#templateReNameSaveAsTxt").val().trim();
templateId = 0;
var allProvidersRegex = /^[a][l][l][\s]*[p][r][o][v][i][d][e][r][s]$/;
/* if(LN.containsSpecialCharacters(updatetemplateReName)){
$('#ln-errorMsgRenameSaveAsTemp').html("Special characters are not allowed");
valid=false;
return;
}*/
if(updatetemplateReName.length > 0 && (!$('#templateReNameSaveAsTxt').val().match(regex))){
return false;
}else if(updatetemplateReName.toLowerCase().match(allProvidersRegex)){
$('#ln-errorMsgRenameSaveAsTemp').html("All Providers is a protected system template name.");
return;
}else {
$('#ln-errorMsgRenameSaveAsTemp').html("");
}
}
if (updatetemplateReName.length > 0) {
if (updatetemplateReName.length <= 60) {
LN.getPage().registerEvent(EVENT_TYPES.COMPARISON_PEER_GROUP_SUCCESS,
cs, function(){
$.ajax({
url : ajaxUrl + token,
type : "POST",
data : {
"templateName" : updatetemplateReName,
"templateId" : templateId,
"templateVersion" : templateVersion
},
success : function(data){
if(data['templateId'] == 0){
$('#ln-errorMsgRenameSaveAsTemp').html("Template name already exists.");
}else{
sessionStorage.SHOW_UNSAVED_MODAL = 'false' ;
$('#renameSaveTemplateModal').modal('hide');
if ( $('#ln_topNav ul .ln-selected a').text() == 'Home' ) {
$("#ln_renameLbl").html('All Providers');
} else {
$("#ln_renameLbl").html(data['templateName']); // Added to display the template name after save.
$('#ln_renameLbl').css('display', 'inline');
$(".ln_renameBtn").show();
$('.ln_saveBtn').hide(); // Hide save and cancel once rename template completes
$('.renameTxt').hide(); // Hide the text box
$("#createTemplateIdHid").val(data['templateId']);
$("#createTemplateNameHid").val(updatetemplateReName);
$("#templateVersionHid").val(data['templateVersionId']);
$("#save-TemplateName").html(data['templateName']);
$("#confirm-title").html("Save As New Template");
$("#saveTemplateConfirmModal").modal('show');
cs.trimTemplateName(".ln-template-title-ellip", 30);
}
}
}
});// end of ajax
},true);
LN.getPage().validateSelectedComparisonPeerGroup();
} else {
$('#ln-errorMsgRenameSaveAsTemp').html("Please enter a template name not to exceed 60 characters.");
} // if (templateName.length <= 60)
} else {
$('#ln-errorMsgRenameSaveAsTemp').html("Please enter a template name.");
}
});
},
saveTemplateConfirmation: function(cs){
$("button#createTemplateOK").click(function(e) {
if(cs.data.redirect){
$.ajax({
url : cs.data.cancelFilterURL,
type : "POST",
success : function() {
LN.debug("inside success of OK confirmation redirect");
$("div#saveTemplateConfirmModal").modal('hide');
cs.goToRefererPage();
}
});// ajax
} else {
$("div#saveTemplateConfirmModal").modal('hide');
}// if redirect
cs.trimTemplateName(".ln-template-title-ellip", 30);
});
}
}); // END CLASS