form.php 14.1 KB
<?php
use Tz\WordPress\Tools;
use Tz\WordPress\Tools\Notifications;
use Tz\WordPress\Tools\Notifications\Settings;
?>

<link rel="stylesheet" href="<?php echo Tools\url('assets/css/notifications.css', __FILE__) ?>"/>

<div id="" class="wrap">
    <h2>Notifications - Edit</h2>

    <?php if (isset($flash) && $flash != ''): ?>
        <div class="post-success">
            <?php echo $flash; ?>
        </div>
    <?php endif; ?>
    <?php if ($validation->validation_errors() != "" || isset($form_error)): ?>
        <div class="post-errors">
            <div class="post-errors-title"><strong>Oops.</strong> There was an error saving your notification.</div>
            <?php if (isset($form_error)): ?>
                <p class="post-errors-content">You must include either an Email, System or SMS message.</p>
            <?php endif; ?>
        </div>
    <?php endif; ?>

    <form enctype="multipart/form-data" method="post"
          action="/wp-admin/admin.php?page=notifications&action=edit&page_id=<?php echo $_GET['page_id'] ?>">
        <input type="hidden" name="_POSTED_" value="yes"/>

        <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;">
            <thead>
                <tr>
                    <th width="150">Notification Details</th>
                    <th>&nbsp;</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td width="150">Notification Type</td>
                    <td>
                        <select name="type" id="notif_type" class="wide-input-field"
                                onchange="updateNotificationType();">
                            <option value="scheduled" <?php echo ($validation->set_value(
                                    'type',
                                    $entry->details['type']
                                ) == 'scheduled') ? 'selected="selected"' : ''; ?>>Scheduled Notification
                            </option>
                            <?php if (current_user_can(
                                    Settings\MANAGE_SYSTEM_NOTIFICATIONS
                                ) || ($_GET['action'] == 'edit' && $entry->details['type'] == 'triggered')
                            ): ?>
                                <option value="triggered" <?php echo ($validation->set_value(
                                        'type',
                                        $entry->details['type']
                                    ) == 'triggered') ? 'selected="selected"' : ''; ?>>System Triggered Notification
                                </option>
                            <?php endif; ?>
                        </select>
                        <?php echo $validation->form_error('type'); ?>
                    </td>
                </tr>
                <tr>
                    <td width="150">Notification Description</td>
                    <td><input type="text" name="title" class="wide-input-field"
                               value="<?php echo $validation->set_value(
                                   'title',
                                   $entry->post_title
                               ); ?>"/><?php echo $validation->form_error('title'); ?></td>
                </tr>
                <tr class="scheduled_sendto">
                    <td>Sent To:</td>
                    <td>

                        <?php
                        if ($entry->details['sendto'] == 'report'): ?>
                            <input type="hidden" name="sendto" value="<?php echo $entry->details['sendto']; ?>"/>
                            &nbsp;<span style="color:#999;"><em>Report Generated</em></span>
                        <?php else: ?>
                            <select name="sendto" class="wide-input-field">
                                <option value="allusers" <?php echo ($validation->set_value(
                                        'sendto',
                                        $entry->details['sendto']
                                    ) == 'allusers') ? 'selected="selected"' : ''; ?>>All Users
                                </option>
                                <optgroup label="By Group:">
                                    <?php foreach (Notifications\getGroups() as $group_id => $group_name): ?>
                                        <option value="<?php echo $group_id ?>"  <?php echo ($validation->set_value(
                                                'sendto',
                                                $entry->details['sendto']
                                            ) == $group_id) ? 'selected="selected"'
                                            : ''; ?>><?php echo $group_name; ?></option>
                                    <?php endforeach; ?>
                                </optgroup>
                            </select>
                        <?php endif; ?>


                        <?php echo $validation->form_error('sendto'); ?>
                    </td>
                </tr>

                <tr class="scheduled-extended">
                    <td>Execute Date / Time</td>
                    <td><input type="text" name="execute_date" id="execute_date" class="wide-input-field date-pick"
                               readonly="readonly" value="<?php echo $validation->set_value(
                            'execute_date',
                            $entry->details['execute_date']
                        ); ?>"/><?php echo $validation->form_error('execute_date'); ?></td>
                </tr>

                <tr class="trigger-extended">
                    <td>Trigger</td>
                    <td><input type="text" name="trigger" id="trigger" class="wide-input-field"
                               value="<?php echo $validation->set_value(
                                   'trigger',
                                   $entry->details['trigger']
                               ); ?>"/><?php echo $validation->form_error('trigger'); ?></td>
                </tr>

            </tbody>
        </table>

        <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;">
            <thead>
                <tr>
                    <th width="150" class="toggle"><h6>Email</h6></th>
                    <th class="action-bar">&nbsp;</th>
                </tr>
            </thead>
            <tbody style="<?php echo ($validation->set_value(
                    'subject',
                    $entry->email['subject']
                ) != '' || $validation->set_value('text', $entry->email['text']) != '' || $validation->set_value(
                    'html',
                    $entry->email['html']
                ) != '') ? '' : 'display: none;'; ?>;">
                <tr>
                    <td width="150">Subject Line</td>
                    <td><input type="text" name="subject" class="wide-input-field" style="width:100%;"
                               value="<?php echo $validation->set_value(
                                   'subject',
                                   $entry->email['subject']
                               ); ?>"/><?php echo $validation->form_error('subject'); ?></td>
                </tr>
                <tr>
                    <td>Text Version</td>
                    <td><textarea name="text" class="wide-input-field" rows="10"
                                  style="width:100%;"><?php echo $validation->set_value(
                                'text',
                                $entry->email['text']
                            ); ?></textarea><?php echo $validation->form_error('text'); ?></td>
                </tr>
                <tr>
                    <td>HTML Version (optional)</td>
                    <td><textarea name="html" id="htmlversion" class="wide-input-field" rows="10"
                                  style="width:100%;"><?php echo $validation->set_value(
                                'html',
                                $entry->email['html']
                            ); ?></textarea><?php echo $validation->form_error('html'); ?></td>
                </tr>

                <tr>
                    <td width="150">Attachments</td>
                    <td>&nbsp;</td>
                </tr>

                <?php
                $attachements = $entry->email['attachments'];
                $allowed_attachments = 3;
                foreach ($attachements as $attachment): ?>
                    <tr>
                        <td>&nbsp;</td>
                        <td><?php echo $attachment; ?> &nbsp; (<a href="#" entry_id="<?php echo $_GET['page_id'] ?>"
                                                                  class="attachment" rel="<?php echo $attachment; ?>">remove</a>)
                        </td>
                    </tr>
                    <?php $allowed_attachments--; endforeach; ?>

                <?php for ($a = 1; $a <= $allowed_attachments; $a++): ?>

                    <tr>
                        <td>&nbsp;</td>
                        <td><input type="file" name="attachment[]"/></td>
                    </tr>
                <?php endfor; ?>

            </tbody>
        </table>

        <table cellspacing="0" class="widefat post fixed expandable" style="margin-top:15px;">
            <thead>
                <tr>
                    <th width="150" class="toggle"><h6>System Message</h6></th>
                    <th class="action-bar">&nbsp;</th>
                </tr>
            </thead>
            <tbody
                style="<?php echo ($validation->set_value('system', $entry->system['message']) == "") ? "display:none"
                    : ""; ?>;">
                <tr>
                    <td>Message Type</td>
                    <td>
                        <select name="system_message_type" class="wide-input-field">
                            <option value="none" <?php echo ($validation->set_value(
                                    'system_message_type',
                                    $entry->system['system_message_type']
                                ) == "none") ? 'selected="selected"' : ""; ?>>General Message
                            </option>
                            <option value="action_required" <?php echo ($validation->set_value(
                                    'system_message_type',
                                    $entry->system['system_message_type']
                                ) == "action_required") ? 'selected="selected"' : ""; ?>>Action Required
                            </option>
                            <option value="e-flash" <?php echo ($validation->set_value(
                                    'system_message_type',
                                    $entry->system['system_message_type']
                                ) == "e-flash") ? 'selected="selected"' : ""; ?>>E-Flash
                            </option>
                            <option value="new_event" <?php echo ($validation->set_value(
                                    'system_message_type',
                                    $entry->system['system_message_type']
                                ) == "new_event") ? 'selected="selected"' : ""; ?>>New Event
                            </option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Message (Text/HTML)</td>
                    <td><textarea name="system" class="wide-input-field" rows="4"
                                  style="width:100%;"><?php echo $validation->set_value(
                                'system',
                                isset($entry->system['message'])
                                    ? $entry->system['message']
                                    : ""
                            ); ?></textarea><?php echo $validation->form_error('system'); ?></td>
                </tr>
            </tbody>
        </table>


        <p>
            <input type="submit" value="  Update  "/><input type="button" value="  Cancel  "
                                                            onclick="document.location.href='/wp-admin/admin.php?page=notifications';"/>
        </p>

    </form>

</div>

<script>
    jQuery(document).ready(function ($) {
        updateNotificationType();

        $('.attachment').live('click', function (e) {
            e.preventDefault();
            var $link = $(this);
            var options = {
                action: 'remove_attachment',
                ajax: 'yes',
                id: $link.attr('entry_id'),
                file: $link.attr('rel')
            };

            var file_element = '<input type="file" name="attachment[]" />';

            var c = confirm('Are you sure you want to remove this attachment?');
            if (c) {
                $.ajax({
                    url: '/wp-admin/admin-ajax.php',
                    data: (options),
                    type: 'POST',
                    dataType: 'json',

                    success: function (data) {
                        if (data.success == "true") {
                            $link.parent().html(file_element);
                        }
                    }
                });
            }

            return false;
        });

        jQuery('table.expandable thead th').click(function () {
            var $table = jQuery(this).parent().parent().parent();
            if (jQuery('tbody', $table).is(':visible')) {
                jQuery('thead', $table).removeClass('open');
                jQuery('tbody', $table).fadeOut();
            } else {
                jQuery('thead', $table).addClass('open');
                jQuery('tbody', $table).fadeIn();
            }
        });

    });

    function updateNotificationType() {
        var type = jQuery('#notif_type').val();

        if (type == 'triggered') {
            jQuery('.scheduled-extended').hide();
            jQuery('.trigger-extended').show();
            jQuery('.scheduled_sendto').hide();
        } else {
            jQuery('.scheduled-extended').show();
            jQuery('.trigger-extended').hide();
            jQuery('.scheduled_sendto').show();

            jQuery('#execute_date').datetimepicker({
                format: 'Y-m-d, H:i',
                defaultDate: new Date()
            });
        }
    }
</script>