");
instance.campaignList = new CampaignList( {
campaignManager : {
editCampaign : function( campaignId ) {
let d = $.Deferred();
d.resolve();
instance.createEditor( { campaignId : campaignId });
instance.switchToEditor();
return d;
},
deleteCampaign : function( campaignData ) {
let d = $.Deferred();
if( confirm( `Delete '${campaignData.campaignName}'? All pending emails associated with '${campaignData.campaignName}' will also be deleted.` ) ) {
// do the save
let saveURL = Fse.Util.updateURL2( $("link#appActionURL").attr( "href" ), { object : "GTM.deleteCampaign" } );
$.ajax( {
url : saveURL,
method : "post",
data : { campaign : JSON.stringify( campaignData ) }
})
.done( function( returnData ) {
d.resolve( returnData );
// instance.dataGrid.refresh();
})
.fail( function() {
console.log( "failed");
})
};
return d;
},
copyCampaign : function( campaignId ) {
let d = $.Deferred();
// note this feature is incomplete and has been removed from the CampaignList item context menu
Fse.Ajax.performAction( {
object : "GTM.copyCampaign",
data : { campaignId : campaignId }
}).done( function( returnData ) {
d.resolve( returnData )
})
return d;
},
addCampaign : function( notUsed ) {
let d = $.Deferred();
d.resolve();
instance.createEditor( { campaignId : 0 });
instance.switchToEditor();
return d;
},
onSelectionChanged : function( selected ) {
console.log( "Selected" );
console.log( selected );
if( selected && selected.length ) {
if( instance.currentCampaign && instance.currentCampaign.campaignId == selected[0].campaignId ) {
// this is the same as the current so do nothing
return;
}
instance.currentCampaign = selected[0];
// instance.multiView.option( "selectedIndex", 1 );
} else {
instance.currentCampaign = null;
}
if( instance.currentCampaign ) {
instance.createEditor( instance.currentCampaign )
}
}
},
edit : function( rowData ) {
instance.switchToEditor();
},
});
instance.campaignNavigation = $("
").dxToolbar( {
items : [
{ location : "before", template : function() { return instance.toolbarCampaignName }},
{ location : "after", widget : "dxButton", options : {
icon : "spinprev",
onClick : function( e ) {
instance.campaignList.selectPrevious();
}
}
},
{ location : "after", widget : "dxButton", options : {
text : "Campaign List",
onClick : function( e ) {
instance.multiView.option( "selectedIndex", 0 );
}
}
},
{ location : "after", widget : "dxButton", options : {
icon : "spinnext",
onClick : function( e ) {
instance.campaignList.selectNext();
}
}
}
]
}).dxToolbar( "instance" );
instance.multiView = $("
").dxMultiView( {
swipeEnabled : false,
items : [
{ template : function() {
return $("
").css( { "padding-top" : "5px" })
.append( instance.campaignList.element());
}
},
{ template : function() {
return $("
").css( { "padding-top" : "5px" }).append( instance.campaignNavigation.element().css( { "padding-bottom" : "5px" }) ).append( instance.campaignEditorHome )
}
}
]
}).dxMultiView( "instance" );
}
CampaignManager.prototype.constructor = CampaignManager;
CampaignManager.prototype.element = function() {
return this.multiView.element();
}
CampaignManager.prototype.newCampaign = function( campaignType ) {
this.updateToolbar( { campaignId : 0 } );
this.createEditor( { campaignType : campaignType, campaignId : 0, campaignName : "" } );
this.switchToEditor();
}
CampaignManager.prototype.onCampaignCreated = function( campaignData ) {
this.currentCampaign = campaignData;
// reload the list and select the new record
this.campaignList.refresh( campaignData.campaignId );
// this.toolbarCampaignName.text( campaignData.campaignName );
this.updateToolbar( campaignData );
}
CampaignManager.prototype.onCampaignUpdated = function( campaignData ) {
this.currentCampaign = campaignData;
// reload the list and select the record
this.campaignList.refresh( campaignData.campaignId );
// this.toolbarCampaignName.text( campaignData.campaignName );
this.updateToolbar( campaignData );
}
CampaignManager.prototype.updateToolbar = function( campaignData ) {
this.toolbarCampaignName.empty();
if( campaignData.campaignId ) {
this.toolbarCampaignName.append( $("").text( campaignData.campaignName ) );
/*
if( campaignData.statusCd && campaignData.statusCd != 'PEN' ) {
this.toolbarCampaignName.append( $("").addClass( "dx-icon-lock" ).attr( { title : "This email campaign is read only" } ) );
}
*/
}
}
CampaignManager.prototype.switchToEditor = function() {
this.multiView.option( "selectedIndex", 1 );
}
CampaignManager.prototype.createEditor = function( options) {
let instance = this;
/*
if( !( options.campaignId || options.campaignType )) {
// not enough data
return;
}
*/
let tabIndex = 0;
// dispose of the existing editor
if( instance.campaignEditor ) {
tabIndex = instance.campaignEditor.getCurrentTabIndex();
instance.campaignEditor.dispose();
instance.campaignEditor = null;
}
let campaignName = "Unknown Campaign";
if( ! options.campaignId ) {
// for new campaigns we start on the first tab
tabIndex = 0;
campaignName = `New ${options.campaignType} Campaign`;
/*
if( options.campaignType == "CRM" ) {
campaignName = "New CRM Campaign";
} else if ( options.campaignType == "STD" ) {
campaignName = "New Standard Campaign";
} else {
campaignName = `New ${options.campaignType} Campaign`;
}
*/
} else if ( options.campaignName ) {
campaignName = options.campaignName
}
instance.campaignEditor = new CampaignEditor( options, { tabIndex : tabIndex, campaignManager : instance } );
instance.campaignEditorHome.append( instance.campaignEditor.element() );
instance.updateToolbar( options );
// instance.toolbarCampaignName.text( options.campaignName );
}