diff options
Diffstat (limited to 'views/mods/mod_campaigns/template_addedit.phtml')
| -rw-r--r-- | views/mods/mod_campaigns/template_addedit.phtml | 75 |
1 files changed, 72 insertions, 3 deletions
diff --git a/views/mods/mod_campaigns/template_addedit.phtml b/views/mods/mod_campaigns/template_addedit.phtml index 06ea4ef..f46400b 100644 --- a/views/mods/mod_campaigns/template_addedit.phtml +++ b/views/mods/mod_campaigns/template_addedit.phtml @@ -5,8 +5,11 @@ $triggerValueOptions = isset($this->view['template_trigger_value_options']) && is_array($this->view['template_trigger_value_options']) ? $this->view['template_trigger_value_options'] : array(); $assignedCampaignIds = isset($data['assigned_campaign_ids']) && is_array($data['assigned_campaign_ids']) ? array_map('intval', $data['assigned_campaign_ids']) : array(); $isEdit = intval($data['id']) > 0; + $triggerStatusOptions = isset($this->view['template_trigger_status_options']) && is_array($this->view['template_trigger_status_options']) ? $this->view['template_trigger_status_options'] : array(); $selectedTriggerEvent = (string)$data['trigger_event']; $selectedTriggerValue = (string)$data['trigger_value']; + $selectedTriggerProduct = (($data['trigger_product'] === null || $data['trigger_product'] === '')?'':(string)intval($data['trigger_product'])); + $bStatusTrigger = ($selectedTriggerEvent === 'order_status'); ?> <div class="wrap columns-2 wpng_template_addedit"> <div class="icon32 icon32-posts-post" id="icon-edit"><br></div> @@ -88,9 +91,9 @@ <?php } ?> </select> </p> - <p> + <p id="wpsg_trigger_value_product_wrap"<?php if ($bStatusTrigger) { ?> style="display:none;"<?php } ?>> <label for="trigger_value"><strong><?php echo __('Trigger Wert (Produkt)', 'wpsg'); ?></strong></label><br /> - <select class="widefat" id="trigger_value" name="trigger_value"> + <select class="widefat" id="trigger_value" name="trigger_value"<?php if ($bStatusTrigger) { ?> disabled="disabled"<?php } ?>> <option value=""><?php echo __('Produkt auswählen', 'wpsg'); ?></option> <?php foreach ($triggerValueOptions as $productId => $productName) { ?> <?php $productId = (string)intval($productId); ?> @@ -98,12 +101,35 @@ <?php echo esc_html($productName); ?> (<?php echo intval($productId); ?>) </option> <?php } ?> - <?php if ($selectedTriggerValue !== '' && !isset($triggerValueOptions[intval($selectedTriggerValue)])) { ?> + <?php if (!$bStatusTrigger && $selectedTriggerValue !== '' && !isset($triggerValueOptions[intval($selectedTriggerValue)])) { ?> <option value="<?php echo esc_attr($selectedTriggerValue); ?>" selected="selected"><?php echo esc_html($selectedTriggerValue); ?></option> <?php } ?> </select> <small><?php echo __('Für Trigger "WPSG: Produktkauf" wird hier die Produkt-ID ausgewählt.', 'wpsg'); ?></small> </p> + <p id="wpsg_trigger_value_status_wrap"<?php if (!$bStatusTrigger) { ?> style="display:none;"<?php } ?>> + <label for="trigger_value_status"><strong><?php echo __('Trigger Wert (Zielstatus)', 'wpsg'); ?></strong></label><br /> + <select class="widefat" id="trigger_value_status" name="trigger_value"<?php if (!$bStatusTrigger) { ?> disabled="disabled"<?php } ?>> + <option value=""><?php echo __('Bitte auswählen', 'wpsg'); ?></option> + <?php foreach ($triggerStatusOptions as $statusKey => $statusLabel) { ?> + <option value="<?php echo esc_attr((string)$statusKey); ?>" <?php selected($selectedTriggerValue, (string)$statusKey); ?>><?php echo esc_html($statusLabel); ?></option> + <?php } ?> + </select> + <small><?php echo __('Die Kampagne wird ausgelöst, sobald eine Bestellung diesen Status erreicht.', 'wpsg'); ?></small> + </p> + <p id="wpsg_trigger_product_wrap"<?php if (!$bStatusTrigger) { ?> style="display:none;"<?php } ?>> + <label for="trigger_product"><strong><?php echo __('Produkt (optional)', 'wpsg'); ?></strong></label><br /> + <select class="widefat" id="trigger_product" name="trigger_product"<?php if (!$bStatusTrigger) { ?> disabled="disabled"<?php } ?>> + <option value=""><?php echo __('Alle Bestellungen', 'wpsg'); ?></option> + <?php foreach ($triggerValueOptions as $productId => $productName) { ?> + <?php $productId = (string)intval($productId); ?> + <option value="<?php echo esc_attr($productId); ?>" <?php selected($selectedTriggerProduct, $productId); ?>> + <?php echo esc_html($productName); ?> (<?php echo intval($productId); ?>) + </option> + <?php } ?> + </select> + <small><?php echo __('Ohne Auswahl gilt die Kampagne für jede Bestellung, die den Zielstatus erreicht.', 'wpsg'); ?></small> + </p> </div> </div> @@ -149,3 +175,46 @@ </div> </form> </div> +<script type="text/javascript">/* <![CDATA[ */ + + /** + * Schaltet die Trigger-Felder passend zum gewaehlten Ereignis um. Das jeweils nicht + * benutzte Feld wird zusaetzlich deaktiviert, damit es nicht mitgesendet wird — beide + * Auswahlfelder heissen trigger_value. + */ + ( function() { + + var elEvent = document.getElementById('trigger_event'); + + if (!elEvent) return; + + function wpsgToggleTrigger() { + + var bStatus = (elEvent.value === 'order_status'); + + [ + ['wpsg_trigger_value_product_wrap', 'trigger_value', !bStatus], + ['wpsg_trigger_value_status_wrap', 'trigger_value_status', bStatus], + ['wpsg_trigger_product_wrap', 'trigger_product', bStatus] + ].forEach(function(a) { + + var elWrap = document.getElementById(a[0]); + var elField = document.getElementById(a[1]); + + if (elWrap) elWrap.style.display = (a[2] ? '' : 'none'); + if (elField) elField.disabled = !a[2]; + + }); + + // Der Bestellstatus als Bedingung ergibt nur beim Statuswechsel-Trigger Sinn. + var elCond = document.getElementById('wpsg_cond_order_status_wrap'); + if (elCond) elCond.style.display = (bStatus ? '' : 'none'); + + } + + elEvent.addEventListener('change', wpsgToggleTrigger); + wpsgToggleTrigger(); + + } )(); + +/* ]]> */</script> |
