File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/admin/assets/js/workflows.js
/**
 * AutomateWoo Workflows Admin
 */
(function( $, data ) {
	AW.Workflow = Backbone.Model.extend({
		getAction: function( action_name ) {
			var actions = AW.workflow.get('actions');
			if ( actions[action_name] ) {
				return actions[action_name];
			}
		}
	});
	AW.WorkflowView = Backbone.View.extend({
		el: $( 'form#post' ),
		$triggerSelect: $('.js-trigger-select'),
		$triggerDescription: $('.js-trigger-description'),
		initialize: function() {
			this.listenTo( this.model, 'change:trigger', this.changeTrigger );
			this.model.set( 'prevTrigger', this.$triggerSelect.val() );
			this.insertMetaboxHelpTips();
		},
		changeTrigger: function() {
			AW.rules.resetAvailableRules();
            $(document.body).trigger('wc-enhanced-select-init');
			AW.initTooltips();
			AW.Validate.validateAllFields();
			if ( AutomateWoo.Workflows.trigger_compatibility_warning() ){
				AW.workflowView.completeTriggerChange();
			}
		},
		completeTriggerChange: function() {
			AW.rules.clearIncompatibleRules();
			AutomateWoo.Workflows.clearIncompatibleActions();
			AutomateWoo.Modal.close();
			AutomateWoo.Workflows.refine_variables();
			AutomateWoo.Workflows.refine_action_selects();
			AutomateWoo.Workflows.maybe_disable_queueing();
			this.updateTriggerDescription();
			// update the prev trigger value
			this.model.set( 'prevTrigger', this.$triggerSelect.val() );
			$(document.body).trigger('automatewoo_trigger_changed');
		},
		cancelTriggerChange: function() {
			this.$triggerSelect.val( this.model.get('prevTrigger') ).trigger('change');
		},
		/**
		 * Update the trigger description
		 */
		updateTriggerDescription: function() {
			var trigger = this.model.get('trigger');
			if ( trigger && trigger.description ) {
				this.$triggerDescription.html( '<p class="aw-field-description">' + trigger.description + '</p>' );
			}
			else {
				this.$triggerDescription.html('');
			}
		},
		initAction: function( action_name, $action ) {
			var data = this.model.getAction( action_name );
			if ( data ) {
				$action.attr( 'data-automatewoo-action-name', action_name );
				$action.attr( 'data-automatewoo-action-group', data.group );
				$action.attr( 'data-automatewoo-action-can-be-previewed', data.can_be_previewed );
			}
			else {
				$action.removeAttr( 'data-automatewoo-action-name' );
				$action.removeAttr( 'data-automatewoo-action-group' );
				$action.removeAttr( 'data-automatewoo-action-can-be-previewed' );
			}
			// update dynamic fields
			$action.find( '[data-automatewoo-dynamic-select]' ).each(function( i, el ){
				AW.workflowView.initDynamicActionSelect( $(el), $action );
			});
			AW.initTooltips();
			AutomateWoo.Workflows.action_dependent_fields($action);
		},
		initDynamicActionSelect: function( $field, $action ) {
			var reference_field_name = $field.attr( 'data-automatewoo-dynamic-select-reference' );
			var $reference_field = $action.find( '.automatewoo-field[data-name="' + reference_field_name + '"]' );
			$reference_field.on( 'change', function() {
				AW.workflowView.updateDynamicActionSelect( $field, $reference_field, $action )
			});
		},
		updateDynamicActionSelect: function( $field, $reference_field, $action ) {
			if ( $field.is( '.automatewoo-field--loading' ) ) {
				return;
			}
			// remove existing options
			$field.find( "option[value!='']" ).remove();
			if ( ! $reference_field.val() ) {
				return;
			}
			var $fieldRow = $field.parents( '.automatewoo-table__row' );
			$fieldRow.addClass( 'automatewoo-field-row--loading' );
			var data = {
				action: 'aw_update_dynamic_action_select',
				action_name: $action.data( 'automatewoo-action-name' ),
				target_field_name: $field.attr( 'data-name' ),
				reference_field_value: $reference_field.val()
			};
			$.post( ajaxurl, data, function( response ) {
				$fieldRow.removeClass( 'automatewoo-field-row--loading' );
				if ( response.success ) {
					$.each( response.data, function ( value, text ) {
						$field.append( $('<option/>', {
							value: value,
							text: text
						}));
					});
				}
			});
		},
		/**
		 * Add helplinks to top of meta box
		 */
		insertMetaboxHelpTips: function() {
			var tips = this.model.get('metaBoxHelpTips');
			_.each( tips, function( tip_html, id ) {
				$metabox = $( '#aw_' + id );
				$metabox.find('h2.hndle').append(tip_html);
			});
		}
	});
	AW.TriggerCompatibilityModalView = Backbone.View.extend({
		className: 'aw-view-trigger-compatibility-modal',
		template: wp.template('aw-trigger-compatibility-modal'),
		data: null,
		initialize: function( data ) {
			this.data = data;
			this.$el.on('click', '.js-confirm', function(){
				AW.workflowView.completeTriggerChange()
			});
			this.$el.on('click', '.js-close-automatewoo-modal', function(){
				AW.workflowView.cancelTriggerChange()
			});
		},
		render: function() {
			this.$el.html( this.template( this.data ));
			return this;
		}
	});
	AW.TriggerPresetActivationModalView = Backbone.View.extend({
		className: 'aw-view-trigger-preset-activation-modal',
		template: wp.template('aw-trigger-preset-activation-modal'),
		data: null,
		initialize: function( data ) {
			this.data = data;
			let modalView = this;
			this.$el.on('click', '.js-confirm', function(){
				modalView.disableButtons();
				// Close with applicable tracking action set up.
				data.action = 'confirm';
				AutomateWoo.Modal.close();
				// submit
				$(AW.workflowView.el).data( 'aw-preset-workflow-confirmed', true ).trigger( 'submit' );
			});
			this.$el.on('click', '.js-close-automatewoo-modal', function(){
				data.action = 'cancel';
				modalView.disableButtons();
			});
		},
		disableButtons: function() {
			this.$el.find('.automatewoo-modal__footer button').addClass('disabled');
		},
		render: function() {
			this.$el.html( this.template( this.data ));
			return this;
		},
		/**
		 * Opens `AutomateWoo.Modal`, fills it with rendered message.
		 * Record Tracking events `preset_activation_alert_rendered` when executed, 
		 * and 'preset_activation_alert_closed' with applicable `action` and `is_active` once eventually closed. 
		 */
		open: function() {
			// Once the modal is open, the default close action for built-in Modal close features is 'dismiss'.
			this.data.action = 'dismiss';
			AutomateWoo.Modal.open();
			AutomateWoo.Modal.contents( this.render().el );
			AW.tracks.recordEvent( 'preset_activation_alert_rendered', { is_active: this.data.isActive } );
			// If the modal is dismissed by AutomateWoo.Modal features.
			document.body.addEventListener(
				'awmodal-close',
				() => AW.tracks.recordEvent( 'preset_activation_alert_closed', {
					is_active: this.data.isActive,
					action: this.data.action
				} ),
				{ once: true }
			);
		}
	});
	AW.workflow = new AW.Workflow( data );
	AW.workflowView = new AW.WorkflowView({
		model: AW.workflow
	});
	AW.Validate.init();
})( jQuery, automatewooWorkflowLocalizeScript );
jQuery(function($) {
	AutomateWoo.Workflows = {
		$triggers_box: $('#aw_trigger_box'),
		$manual_workflow_box: $('#aw_manual_workflow_box'),
		$actions_box: $('#aw_actions_box'),
		$actions_container: $('.aw-actions-container'),
		$action_template: $('.aw-action-template'),
		$trigger_select: $('.js-trigger-select').first(),
		$manual_trigger_select: $('.js-manual-trigger-select').first(),
		init: function() {
			AutomateWoo.Workflows.init_triggers_box();
			AutomateWoo.Workflows.init_actions_box();
			AutomateWoo.Workflows.init_options_box();
		},
		/**
		 *
		 */
		init_triggers_box: function() {
			AutomateWoo.Workflows.$trigger_select.on( 'change', function(){
				AutomateWoo.Workflows.fill_trigger_fields( $(this).val() );
			});
			AutomateWoo.Workflows.$manual_trigger_select.on( 'change', function(){
				AutomateWoo.Workflows.fill_manual_workflow_trigger_fields( $(this).val() );
			});
		},
		/**
		 *
		 */
		init_actions_box: function() {
			$('.automatewoo-action.js-open').each(function(){
				AutomateWoo.Workflows.action_edit_open( $(this) );
			});
			$('.js-aw-add-action').on( 'click', function (e) {
				e.preventDefault();
				AutomateWoo.Workflows.add_new_action();
			});
			$(document).on('click', '.js-edit-action', function (e) {
				e.preventDefault();
				var $action = $(this).parents('.automatewoo-action').first();
				if ($action.is('.js-open')) {
					AutomateWoo.Workflows.action_edit_close($action);
				}
				else {
					AutomateWoo.Workflows.action_edit_open($action);
				}
			});
			$(document).on('click', '.js-delete-action', function (e) {
				e.preventDefault();
				var $action = $(this).parents('.automatewoo-action').first();
				AutomateWoo.Workflows.action_delete($action);
			});
			// Action select change
			$(document).on('change', '.js-action-select', function () {
				var $action = $(this).parents('.automatewoo-action').first();
				AutomateWoo.Workflows.fill_action_fields( $action, $(this).val() );
			});
			// preview links
			$(document).on('click', '[data-automatewoo-preview]', function(e){
				e.preventDefault();
				var $action = $(this).parents('.automatewoo-action').first();
				AutomateWoo.Workflows.preview_action($action);
			});
			if ( ! AW.workflow.get('isNew') ) {
				AutomateWoo.Workflows.refine_action_selects();
				AutomateWoo.Workflows.refine_variables();
				AutomateWoo.Workflows.maybe_disable_queueing();
				$('.automatewoo-action').each(function( i, el ) {
					AW.workflowView.initAction( $(el).find('.js-action-select').val(), $(el) );
				});
			}
		},
		init_options_box: function() {
			var $checkbox_click_tracking = $('.aw-checkbox-enable-click-tracking');
			AutomateWoo.Workflows.maybe_hide_tracking_options();
			$checkbox_click_tracking.on( 'click', function(){
				AutomateWoo.Workflows.maybe_hide_tracking_options();
			});
		},
		maybe_hide_tracking_options: function() {
			var $checkbox_click_tracking = $('.aw-checkbox-enable-click-tracking');
			var checked = $checkbox_click_tracking.is(':checked');
			if ( ! checked ) {
				$('.js-require-email-tracking').hide();
			}
			else {
				$('.js-require-email-tracking').show();
			}
		},
		/**
		 * @param trigger_name
		 */
		fill_trigger_fields: function( trigger_name ) {
			// Remove existing fields
			AutomateWoo.Workflows.$triggers_box.find('tr.aw-trigger-option').remove();
			if ( trigger_name ) {
				AutomateWoo.Workflows.$triggers_box.addClass('aw-loading');
				this.fetch_trigger_data( trigger_name )
					.done(function(response){
						if ( ! response.success ) {
							return;
						}
						AutomateWoo.Workflows.$triggers_box.find('tbody').append( response.data.fields );
						AutomateWoo.Workflows.$triggers_box.removeClass('aw-loading');
						AW.workflow.set( 'trigger', response.data.trigger );
					});
			}
			else {
				AW.workflow.set( 'trigger', false );
			}
		},
		fetch_trigger_data: function( trigger_name ) {
			return $.ajax({
				method: 'GET',
				url: ajaxurl,
				data: {
					action: 'aw_fill_trigger_fields',
					trigger_name: trigger_name,
					workflow_id: AW.workflow.get('id'),
					is_new_workflow: AW.workflow.get('isNew')
				}
			});
		},
		/**
		 * @param trigger_name
		 */
		fill_manual_workflow_trigger_fields: function( trigger_name ) {
			var $metabox = AutomateWoo.Workflows.$manual_workflow_box;
			// Remove existing fields
			$metabox.find('tr.aw-trigger-option').remove();
			if ( trigger_name ) {
				$metabox.addClass('aw-loading');
				this.fetch_trigger_data( trigger_name )
					.done(function(response){
						if ( ! response.success ) {
							return;
						}
						$metabox.find('tbody').append( response.data.fields );
						$metabox.removeClass('aw-loading');
						AW.workflow.set( 'trigger', response.data.trigger );
					});
			} else {
				AW.workflow.set( 'trigger', false );
			}
		},
		add_new_action: function() {
			var $new_action,
				action_number = AutomateWoo.Workflows.get_number_of_actions() + 1;
			$('.js-aw-no-actions-message').hide();
			$new_action = AutomateWoo.Workflows.$action_template.clone();
			$new_action.removeClass('aw-action-template');
			$new_action.addClass('automatewoo-action');
			AutomateWoo.Workflows.$actions_container.append($new_action);
			$new_action.attr( 'data-action-number', action_number );
			AutomateWoo.Workflows.action_edit_open($new_action);
		},
		/**
		 * Get the name for the cookie that stores if an action is being edited.
		 *
		 * @param {Number} action_number
		 * @returns {string}
		 */
		get_editing_action_cookie_name: function( action_number ) {
			const workflow_id = AW.workflow.get( 'id' );
			return `aw_editing_action_${ workflow_id }_${ action_number }`;
		},
		action_edit_open: function( $action ) {
			var action_number = $action.data('action-number');
			$action.addClass('js-open');
			$action.find('.automatewoo-action__fields').slideDown(150);
			AW.initTooltips();
			// save open state
			Cookies.set(
				this.get_editing_action_cookie_name( action_number ),
				1,
				{ sameSite: 'strict' },
			);
		},
		/**
		 * Set up fields that are dependent on each other.
		 * @param {jQuery} $action
		 */
		action_dependent_fields: function( $action ) {
			var $hideWhenChecked = $action.find( '[data-hide-when-checked]' );
			$hideWhenChecked.each( function() {
				var $this = $( this );
				var $dependency = $this.data( 'hideWhenChecked' );
				var $parentRow = $this.closest( 'tr.automatewoo-table__row' );
				var $checkbox = $( `[data-name="${$dependency}"]` ).find( 'input[type="checkbox"]' );
				if ( !$checkbox ) {
					return;
				}
				$checkbox.on( 'change', function() {
					this.checked ? $parentRow.hide() : $parentRow.show();
				} ).trigger( 'change' );
			} );
		},
		action_edit_close: function( $action ) {
			var action_number = $action.data('action-number');
			$action.removeClass('js-open');
			$action.find('.automatewoo-action__fields').slideUp(150);
			Cookies.remove(
				this.get_editing_action_cookie_name( action_number ),
			);
		},
		/**
		 * @param $action
		 */
		action_delete: function( $action ) {
			$action.remove();
		},
		/**
		 *
		 */
		fill_action_fields: function( $action, selected_action ) {
			var action_number = $action.data('action-number');
			var $select = $action.find('.js-action-select');
			AutomateWoo.Workflows.$actions_box.addClass('aw-loading');
			// Remove existing fields
			$action.find('tr.automatewoo-table__row:not([data-name="action_name"])').remove();
			$.ajax({
				method: 'GET',
				url: ajaxurl,
				data: {
					action: 'aw_fill_action_fields',
					action_name: selected_action,
					action_number: action_number,
					workflow_id: AW.workflow.get('id')
				}
			})
				.done(function(response){
					$action.find('.automatewoo-table tbody').append( response.data.fields );
					AutomateWoo.Workflows.$actions_box.removeClass('aw-loading');
					// Fill select box name
					$select.attr('name', 'aw_workflow_data[actions]['+action_number+'][action_name]' );
					// Pre fill title
					$action.find('.action-title').text( response.data.title );
					$action.find('.js-action-description').html( response.data.description );
					AW.workflowView.initAction( selected_action, $action );
				})
			;
		},
		get_number_of_actions: function () {
			return $('.automatewoo-action').length;
		},
		/**
		 * Show or hide text var groups based on the selected trigger
		 */
		refine_variables: function() {
			var trigger = AW.workflow.get('trigger');
			$('.aw-variables-group').each(function( i, el ){
				var group = $(el).data( 'automatewoo-variable-group' );
				if ( $.inArray( group, trigger.supplied_data_items ) == -1 ) {
					$(el).hide();
				}
				else {
					$(el).show();
				}
			});
		},
		/**
		 * Show or hide select options based on the selected trigger
		 * Also what if a trigger is changed after an action is already added
		 */
		refine_action_selects: function() {
			$('.js-action-select').each(function(){
				$(this).find('option').each(function(){
					$(this).prop(
						'disabled',
						! AutomateWoo.Workflows.is_action_compatible_with_current_trigger( $(this).val() )
					);
				});
			});
		},
		/**
		 * Hide queue if disabled for the selected trigger
		 */
		maybe_disable_queueing: function() {
			var trigger = AW.workflow.get('trigger');
			if ( trigger && trigger.allow_queueing ) {
				$('#aw_timing_box').show();
			}
			else {
				$('#aw_timing_box').hide();
			}
		},
		/**
		 * Be sure to run this before refine_action_selects
		 *
		 * Returns false if switching back to stop the trigger change
		 *
		 * @return boolean
		 */
		trigger_compatibility_warning: function(){
			var incompatibleRules = [];
			var incompatibleActions = [];
			_.each( AW.rules.get( 'ruleOptions' ), function( ruleGroup ) {
				_.each( ruleGroup.get( 'rules' ), function( rule ) {
					if ( rule.get('name') && ! AW.rules.isRuleAvailable( rule.get('name') ) ) {
						var ruleObject = rule.get( 'object' );
						incompatibleRules.push( ruleObject.title );
					}
				});
			});
			$('.js-action-select').each(function(){
				if ( ! AutomateWoo.Workflows.is_action_compatible_with_current_trigger( $(this).val() ) ) {
					incompatibleActions.push( $(this).find('option:selected').text() )
				}
			});
			if ( incompatibleRules.length || incompatibleActions.length ) {
				incompatibleActions = _.uniq( incompatibleActions );
				incompatibleRules = _.uniq( incompatibleRules );
				var modalView = new AW.TriggerCompatibilityModalView({
					incompatibleRules: incompatibleRules,
					incompatibleActions: incompatibleActions
				});
				AutomateWoo.Modal.open();
				AutomateWoo.Modal.contents( modalView.render().el );
				return false;
			}
			return true;
		},
		clearIncompatibleActions: function() {
			$('.js-action-select').each(function(){
				if ( ! AutomateWoo.Workflows.is_action_compatible_with_current_trigger( $(this).val() ) ) {
					var $action = $(this).parents('.automatewoo-action').first();
					AutomateWoo.Workflows.action_delete( $action );
				}
			});
		},
		/**
		 *
		 * @param action_name
		 *
		 * @return boolean
		 */
		is_action_compatible_with_current_trigger: function( action_name ) {
			var compatible = true,
			 	trigger = AW.workflow.get('trigger'),
				action = AW.workflow.getAction(action_name);
			// Not a valid action
			if ( ! action ) {
				return true;
			}
			// No data items required
			if ( ! action.required_data_items.length ){
				return true;
			}
			$.each( action.required_data_items, function(i, value){
				if ( $.inArray( value, trigger.supplied_data_items ) == -1 ) {
					compatible = false
				}
			});
			return compatible;
		},
		preview_action: function( $action ) {
			var action_number = $action.data('action-number');
			var name_selector;
			var trigger = AW.workflow.get('trigger');
			var fields = {};
			if ( AutomateWoo.isEmailPreviewOpen() ) {
				AutomateWoo.Workflows.$actions_box.addClass('aw-loading');
			}
			if ( typeof tinyMCE !== 'undefined' ) {
				tinyMCE.triggerSave();
			}
			name_selector = 'aw_workflow_data[actions]['+action_number+']';
			// get fields to preview
			$action.find('[name*="' + name_selector + '"]').each(function( i, el ){
				var field_name, element_name, val, is_grouped;
				element_name = $(el).attr('name')
				is_grouped = /\[]$/.test( element_name );
				if ( is_grouped ) {
					element_name = element_name.replace( '[]', '' );
				}
				// get the name
				field_name = element_name.replace(name_selector, '').replace('[', '').replace(']', '');
				if ( $(el).attr('type') === 'checkbox' ) {
                    val = el.checked ? '1' : '';
				} else {
					val = $(el).val();
				}
				if ( is_grouped ) {
					if ( ! fields.hasOwnProperty( field_name ) ) {
						fields[ field_name ] = [];
					}
					fields[field_name].push( val );
				} else {
					fields[field_name] = val;
				}
			});
			AutomateWoo.openLoadingEmailPreview(); // open the preview window before saving so that the popup is not blocked
			$.ajax({
				method: 'POST',
				url: ajaxurl,
				data: {
					action: 'aw_save_preview_data',
					workflow_id: AW.workflow.get('id'),
					trigger_name: trigger ? trigger.name : '',
					action_fields: fields,
				},
				success: function(response) {
					AutomateWoo.open_email_preview( 'workflow_action', {
						workflow_id: AW.workflow.get('id'),
						action_number: action_number
					});
				},
				complete: function() {
					AutomateWoo.Workflows.$actions_box.removeClass('aw-loading');
				}
			});
		},
		/**
		 * @param id
         */
		init_ajax_wysiwyg: function( id ){
			if ( typeof tinymce === 'undefined' || typeof tinyMCEPreInit.mceInit.automatewoo_editor === 'undefined' )
				return;
			var $wrap,
				mceInit,
				qtInit,
				qtags;
			mceInit = $.extend({}, tinyMCEPreInit.mceInit.automatewoo_editor );
			qtInit = $.extend({}, tinyMCEPreInit.qtInit.automatewoo_editor );
			mceInit.selector = '#' + id;
			mceInit.id = id;
			mceInit.wp_autoresize_on = false;
			tinyMCEPreInit.mceInit[ mceInit.id ] = mceInit;
			qtInit.id = id;
			$wrap = tinymce.$( '#wp-' + id + '-wrap' );
			if ( ( $wrap.hasClass( 'tmce-active' ) || ! tinyMCEPreInit.qtInit.hasOwnProperty( id ) ) ) {
				try {
					tinymce.init( mceInit );
				} catch(e){}
			}
			try {
				qtags = quicktags( qtInit );
				this.init_wysiwyg_buttons( qtags );
			} catch(e){}
		},
		/**
		 *
		 * @param qtags
         */
		init_wysiwyg_buttons: function( qtags ) {
			var defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,';
			canvas = qtags.canvas;
			name = qtags.name;
			settings = qtags.settings;
			html = '';
			theButtons = {};
			use = '';
			// set buttons
			if ( settings.buttons ) {
				use = ','+settings.buttons+',';
			}
			for ( i in edButtons ) {
				if ( !edButtons[i] ) {
					continue;
				}
				id = edButtons[i].id;
				if ( use && defaults.indexOf( ',' + id + ',' ) !== -1 && use.indexOf( ',' + id + ',' ) === -1 ) {
					continue;
				}
				if ( !edButtons[i].instance || edButtons[i].instance === inst ) {
					theButtons[id] = edButtons[i];
					if ( edButtons[i].html ) {
						html += edButtons[i].html(name + '_');
					}
				}
			}
			if ( use && use.indexOf(',fullscreen,') !== -1 ) {
				theButtons.fullscreen = new qt.FullscreenButton();
				html += theButtons.fullscreen.html(name + '_');
			}
			if ( 'rtl' === document.getElementsByTagName('html')[0].dir ) {
				theButtons.textdirection = new qt.TextDirectionButton();
				html += theButtons.textdirection.html(name + '_');
			}
			qtags.toolbar.innerHTML = html;
			qtags.theButtons = theButtons;
		}
	};
	AutomateWoo.Workflows.init();
	/**
	 * Customer win back trigger.
	 *
	 * Changes the max field placeholder so it's 3 days after the min field val.
	 */
	function init_customer_win_back_trigger() {
		var $min_field = $('input[name="aw_workflow_data[trigger_options][days_since_last_purchase]"]');
		var $max_field = $('input[name="aw_workflow_data[trigger_options][days_since_last_purchase_max]"]');
		var default_range = 3;
		$min_field.on( 'change keyup', function(){
			var min_val = $min_field.val() ? parseInt( $min_field.val() ) : 0;
			var placeholder = '';
			if ( min_val ) {
				placeholder = min_val + default_range;
			}
			$max_field.attr('min', min_val + 1 );
			$max_field.attr('placeholder', placeholder );
		}).trigger( 'change' );
	}
	$(document.body).on('automatewoo_trigger_changed', function(){
		init_customer_win_back_trigger();
	});
	function init_workflow_type() {
		var $typeSelectField = $('.automatewoo-workflow-type-field');
		function updateType( type, doReset ) {
			if ( type === 'manual' ) {
				$('#aw_trigger_box, #automatewoo-workflow-status-field-row').hide();
				$('#aw_manual_workflow_box').show();
				$('#automatewoo-workflow-run-btn').show().css('display','inline-block');
			} else {
				$('#automatewoo-workflow-run-btn, #aw_manual_workflow_box').hide();
				$('#aw_trigger_box, #automatewoo-workflow-status-field-row').show();
			}
			if ( doReset ) {
				// Reset select box to first option on type change
				AutomateWoo.Workflows.$manual_trigger_select[0].selectedIndex = 0;
				AutomateWoo.Workflows.$trigger_select[0].selectedIndex = 0;
				AW.workflow.set( 'trigger', false );
			}
		}
		$typeSelectField.on( 'change', function() {
			updateType( $typeSelectField.val(), true );
		} );
		updateType( $typeSelectField.val(), false )
	}
	$('#automatewoo-workflow-run-btn').on( 'click', function(){
		$('input[name="automatewoo_redirect_to_runner"]').val(1);
		$('#publish').trigger( 'click' );
		return false;
	});
	$( 'form#post' ).on( 'submit', function(){
		let $form             = $(this);
		let isActive          = 'active' === $('select[name=workflow_status]', $form).val();
		let isConfirmed       = $form.data('aw-preset-workflow-confirmed');
		let isFirstPresetSave = /workflow-origin=preset/.test( window.location.href );
		if ( isFirstPresetSave && ! isConfirmed ) {
			const activationModalView = new AW.TriggerPresetActivationModalView( { isActive } );
			activationModalView.open();
			return false;
		}
		return true;
	});
	init_customer_win_back_trigger();
	init_workflow_type();
});