Setting up form start and end includes.
authorSteve Sutton <steve@gaslightmedia.com>
Mon, 22 Jul 2019 19:33:13 +0000 (15:33 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Mon, 22 Jul 2019 19:33:13 +0000 (15:33 -0400)
Also adding check for setting and management if user is navigating off
the page with unsaved changes.

13 files changed:
classes/data/dataInvoices.php
models/admin/billing/invoices.php
views/admin/billing/accountSearchForm.html
views/admin/billing/accounts.html
views/admin/billing/editAccountAjax.html
views/admin/billing/editInvoiceType.html
views/admin/billing/editNotificationType.html
views/admin/billing/header.html
views/admin/billing/index.html
views/admin/billing/invoices.html
views/admin/billing/management.html
views/admin/billing/payments.html
views/admin/billing/settings.html

index 0eeddca..9a5345e 100644 (file)
@@ -291,7 +291,7 @@ class GlmDataInvoices extends GlmDataAbstract
         // Remove what we don't want from the copy and get the list
         $this->fields = array(
             'id'   => $fSave['id'],
-            'name' => $fSave['ref_name'],
+            'name' => $fSave['account'],
         );
 
         $invoiceList = $this->getList($where, $order, $fieldVals, $idField, $start, $limit);
index 7762b00..57ad5d3 100644 (file)
@@ -135,6 +135,7 @@ class GlmMembersAdmin_billing_invoices extends GlmDataInvoices
         $counties           = false;
         $paymentTypes       = false;
         $invoiceSent        = false;
+        $lineItemJSON       = false;
 
         // Enqueue GLMA Foundation
         wp_enqueue_style( 'Foundation6', GLM_MEMBERS_PLUGIN_URL . '/css/foundation-6.min.css' );
index 121ace2..4096dc7 100644 (file)
@@ -74,51 +74,62 @@ jQuery(document).ready(function($) {
 });
 </script>
 
-<form action="{$thisUrl}?page={$thisPage}" method="post" id="searchForm">
-    <input type="hidden" name="glm_action" value="accounts">
-    <input type="hidden" name="option" value="list">
+{* Form Start *}
+{$ui = [
+    'id'     => 'searchForm',
+    'action' => "{$thisUrl}?page={$thisPage}",
+    'method' => 'post'
+]}
+{include file='ui/f6/form-start.html'}
 
-    <input type="hidden" name="searched" value="1">
-    <input type="hidden" name="prevStart" value="{$prevStart}">
-    <input type="hidden" name="nextStart" value="{$nextStart}">
-    <input type="hidden" name="limit" value="{$limit}">
+<input type="hidden" name="glm_action" value="accounts">
+<input type="hidden" name="option" value="list">
 
-    <fieldset class="fieldset cell small-12">
-        <legend>Search Accounts</legend>
-            <div class="grid-x grid-margin-x">
+<input type="hidden" name="searched" value="1">
+<input type="hidden" name="prevStart" value="{$prevStart}">
+<input type="hidden" name="nextStart" value="{$nextStart}">
+<input type="hidden" name="limit" value="{$limit}">
 
-                <div class="cell small-12 medium-3">
-                    <label>Member Account:</label>
-                    <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}" />
-                    <input id="account_name" type="text" name="searchName" value="{if $searchName}{$searchName}{/if}" />
-                </div>
+<fieldset class="fieldset cell small-12">
+    <legend>Search Accounts</legend>
+        <div class="grid-x grid-margin-x">
 
-                <div class="cell small-12 medium-3">
-                    <label>From Date: </label>
-                    <input type="text" name="fromDate" value="{$fromDate}" class="glm-date-input" />
-                </div>
+            <div class="cell small-12 medium-3">
+                <label>Member Account:</label>
+                <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}" />
+                <input id="account_name" type="text" name="searchName" value="{if $searchName}{$searchName}{/if}" />
+            </div>
 
-                <div class="cell small-12 medium-3">
-                    <label>To Date: </label>
-                    <input type="text" name="toDate" value="{$toDate}" class="glm-date-input" />
-                </div>
+            <div class="cell small-12 medium-3">
+                <label>From Date: </label>
+                <input type="text" name="fromDate" value="{$fromDate}" class="glm-date-input" />
+            </div>
 
-                <div class="cell small-12 medium-3">
-                    <label>
-                        <input id="filterActive" name="filterActive" value="1" {if $filterActive}checked{/if} type="checkbox" /> Show Active
-                    </label>
-                    <label>
-                        <input id="filterPending" name="filterPending" value="1" {if $filterPending}checked{/if} type="checkbox" /> Show Pending
-                    </label>
-                    <label>
-                        <input id="filterOverdue" name="filterOverdue" value="1" {if $filterOverdue}checked{/if} type="checkbox" /> Show Overdue
-                    </label>
-                    <label>
-                        <input id="filterExpired" name="filterExpired" value="1" {if $filterExpired}checked{/if} type="checkbox" /> Show Expired
-                    </label>
-                </div>
+            <div class="cell small-12 medium-3">
+                <label>To Date: </label>
+                <input type="text" name="toDate" value="{$toDate}" class="glm-date-input" />
             </div>
-            <div class="billing-search-form-submit">
-                <button class="button primary" type="submit">Submit</button>
+
+            <div class="cell small-12 medium-3">
+                <label>
+                    <input id="filterActive" name="filterActive" value="1" {if $filterActive}checked{/if} type="checkbox" /> Show Active
+                </label>
+                <label>
+                    <input id="filterPending" name="filterPending" value="1" {if $filterPending}checked{/if} type="checkbox" /> Show Pending
+                </label>
+                <label>
+                    <input id="filterOverdue" name="filterOverdue" value="1" {if $filterOverdue}checked{/if} type="checkbox" /> Show Overdue
+                </label>
+                <label>
+                    <input id="filterExpired" name="filterExpired" value="1" {if $filterExpired}checked{/if} type="checkbox" /> Show Expired
+                </label>
             </div>
-    </fieldset>
+        </div>
+        <div class="billing-search-form-submit">
+            {$ui = [
+                'label' => 'Submit',
+                'class' => 'primary'
+            ]}
+            {include file='ui/f6/submit.html'}
+        </div>
+</fieldset>
index 3f987e8..8f62781 100644 (file)
@@ -6,6 +6,7 @@
 
     <div id="exportAccountsButton" class="button secondary">Accounts Export</div>
 
+    {* Search Form *}
     {include file='admin/billing/accountSearchForm.html'}
 
     <p>Total found: <span class="label">{$totalAccounts}</span></p>
         <input type="Submit" name="pageSelect" value="Next {$limit} Accounts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
     {/if}
 
-    </form>
+    {* Form End *}
+    {include file='ui/f6/form-end.html'}
 
     {include file='admin/billing/exportBillingModal.html'}
+    {include file='admin/billing/accountReveals.html'}
 
-    <script>
-
-        jQuery(document).ready(function($){
-
-            var accountHoverId  = false;
-            var accountEmployee = false;
-
-            $('.glm-account-row').mouseenter( function(){
-                if ( accountEmployee ) {
-                    return false;
-                }
-                // Hide all
-                $( '.glm-account-links' ).addClass( 'hide-for-large' );
-
-                accountHoverId = $(this).data('id');
-                $( '#account-container-' + accountHoverId ).removeClass( 'hide-for-large' );
-            });
-            $('.glm-admin-table-inner').mouseleave( function() {
-                $( '#account-container-' + accountHoverId ).addClass( 'hide-for-large' );
-            });
-
-            $('.account-employees').on( 'click', function(e){
-                e.preventDefault();
-                accountLinksEmployeesSelected();
-                var account_id = $(this).data('id');
-                console.log('account_id: ', account_id);
-                $('#account-employees-' + account_id).show();
-            } );
-
-            $('.glm-employee-cancel').on('click', function(e){
-                e.preventDefault();
-                clearAccountLinks();
-                var account_id = $(this).data('id');
-                $('#account-employees-' + account_id).hide();
-            });
-
-            function accountLinksEmployeesSelected() {
-                accountEmployee = true;
-                console.log( 'accountHoverId: ', accountHoverId );
-                $('#account-container-' + accountHoverId).addClass('hide-for-large');
-            }
+</div>
+
+<script>
 
-            function clearAccountLinks() {
-                accountLinksEmployeesSelected();
-                accountHoverId = false;
-                accountEmployee = false;
+    jQuery(document).ready(function($){
+
+        var accountHoverId  = false;
+        var accountEmployee = false;
+
+        $('.glm-account-row').mouseenter( function(){
+            if ( accountEmployee ) {
+                return false;
             }
+            // Hide all
+            $( '.glm-account-links' ).addClass( 'hide-for-large' );
+
+            accountHoverId = $(this).data('id');
+            $( '#account-container-' + accountHoverId ).removeClass( 'hide-for-large' );
+        });
+        $('.glm-admin-table-inner').mouseleave( function() {
+            $( '#account-container-' + accountHoverId ).addClass( 'hide-for-large' );
+        });
 
+        $('.account-employees').on( 'click', function(e){
+            e.preventDefault();
+            accountLinksEmployeesSelected();
+            var account_id = $(this).data('id');
+            console.log('account_id: ', account_id);
+            $('#account-employees-' + account_id).show();
+        } );
+
+        $('.glm-employee-cancel').on('click', function(e){
+            e.preventDefault();
+            clearAccountLinks();
+            var account_id = $(this).data('id');
+            $('#account-employees-' + account_id).hide();
         });
 
-    </script>
+        function accountLinksEmployeesSelected() {
+            accountEmployee = true;
+            console.log( 'accountHoverId: ', accountHoverId );
+            $('#account-container-' + accountHoverId).addClass('hide-for-large');
+        }
+
+        function clearAccountLinks() {
+            accountLinksEmployeesSelected();
+            accountHoverId = false;
+            accountEmployee = false;
+        }
+
+    });
+
+</script>
 
-    {include file='admin/billing/accountReveals.html'}
 
-</div>
 {include file='admin/billing/footer.html'}
index bd8fdde..6f850e4 100644 (file)
 
                 {* Renewal Date *}
                 {$ui = [
-                    'value'       => $data.fieldData.renewal_date,
+                    'value'       => $data.fieldData.renewal_date.date,
                     'field'       => 'renewal_date',
                     'label'       => 'Renewal Date',
                     'placeholder' => 'Renewal Date',
index 96ce7ae..ae3bd21 100644 (file)
     </fieldset>
 
 </div>
-
-<button class="button primary" type="submit">{if isset( $data.fieldData.id )}Update{else}Add{/if} Invoice Type</button>
+{if isset( $data.fieldData.id )}
+    {$label = 'Update Invoice Type'}
+{else}
+    {$label = 'Add Invoice Type'}
+{/if}
+{$ui = [
+    'type'  => 'submit',
+    'label' => $label,
+    'class' => 'primary'
+]}
+{include file='ui/f6/submit.html'}
 
 <a class="button secondary" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoiceTypes">Cancel</a>
 
             //ev.preventDefault();
             //console.log( 'Submit for form intercepted' );
         });
+
+        /*
+         * Check for input changes
+         */
+        var glmSubmitRequired = false;
+        $('input, textarea, select').on( 'change', function() {
+            glmSubmitRequired = true;
+            console.log('locked', glmSubmitRequired);
+        });
+
+        /*
+         * Checks for leaving the page
+         */
+
+        // When submit button is clicked, disable the beforeunload message
+        $('#billing-invoice-type-form').on('click', function() {
+            glmSubmitRequired = false;
+            return true;
+        });
+
+        // If submit is required and we're laving the page, alert the user
+        $(window).bind('beforeunload', function() {
+            if (glmSubmitRequired) {
+                return true;
+            }
+        });
+
     });
 </script>
 
index ed5c2b1..b4b5a06 100644 (file)
@@ -51,7 +51,7 @@
 ]}
 {include file="ui/f6/callout.html"}
 
-<form action="{$thisUrl}?page={$thisPage}&glm_action=notifications" method="post" data-abide novalidate>
+<form id="billing-notification-form" action="{$thisUrl}?page={$thisPage}&glm_action=notifications" method="post" data-abide novalidate>
     {if $notification_id}
         <input type="hidden" name="option" value="update">
         <input type="hidden" name="id" value="{$notification_id}">
@@ -269,6 +269,32 @@ jQuery(document).ready(function($){
     // Flash certain elements for a short time after display
     $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
 
+    /*
+     * Check for input changes
+     */
+    var glmSubmitRequired = false;
+    $('input, textarea, select').on( 'change', function() {
+        glmSubmitRequired = true;
+        console.log('locked', glmSubmitRequired);
+    });
+
+    /*
+     * Checks for leaving the page
+     */
+
+    // When submit button is clicked, disable the beforeunload message
+    $('#billing-notification-form').on('click', function() {
+        glmSubmitRequired = false;
+        return true;
+    });
+
+    // If submit is required and we're laving the page, alert the user
+    $(window).bind('beforeunload', function() {
+        if (glmSubmitRequired) {
+            return true;
+        }
+    });
+
 });
 </script>
 
index 4991737..c0c82d4 100644 (file)
@@ -1,3 +1,9 @@
+<style>
+#glm-billing-nav {
+    max-width: 75rem;
+}
+</style>
+
 <div class="wrap">
 
     <h2>Billing</h2>
       <div class="title-bar-title">Menu</div>
     </div>
 
-    <div class="top-bar stacked-for-small" id="responsive-menu">
-        <div class="top-bar-left">
-            <ul class="vertical medium-horizontal menu" data-responsive-menu="accordion medium-dropdown">
-                <li class="menu-text">Billing</li>
-                <li class="{if $thisAction==index}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing">Dashboard</a>
-                </li>
-                <li class="{if $thisAction==accounts}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=accounts">Accounts</a>
-                </li>
-                <li class="{if $thisAction==invoices}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoices">Invoices</a>
-                </li>
-                <li class="{if $thisAction==payments}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=payments">Payments</a>
-                </li>
-                {if isset( $settings.renewal_day_static ) && $settings.renewal_day_static}
-                    <li class="">
-                        <a href="#">Invoicing</a>
-                        <ul class="menu">
-                            {*
-                            <li>
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing">Invoicing</a>
-                            </li>
-                            *}
-                            <li class="{if $option==createInvoices}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createInvoices">Create Invoices</a>
-                            </li>
-                            <li class="{if $option==printInvoices}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=printInvoices">Print Invoices</a>
-                            </li>
-                            <li class="{if $option==createLabels}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createLabels">Create Labels</a>
-                            </li>
-                            <li class="{if $option==sendEmails}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=sendEmails">Send Emails</a>
-                            </li>
-                        </ul>
+    <div id="glm-billing-nav">
+        <div class="top-bar stacked-for-small" id="responsive-menu">
+            <div class="top-bar-left">
+                <ul class="vertical medium-horizontal menu" data-responsive-menu="accordion medium-dropdown">
+                    <li class="menu-text">Billing</li>
+                    <li class="{if $thisAction==index}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing">Dashboard</a>
                     </li>
-                    <li class="{if $thisAction==reports} is-active{/if}">
-                        <a href="#">Reports</a>
-                        <ul class="menu">
-                            <li class="{if $option==openAccounts}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=openAccounts">Open Accounts</a>
-                            </li>
-                            <li class="{if $option==closedAccounts}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=closedAccounts">Closed Accounts</a>
-                            </li>
-                            <li class="{if $option==accountsByAge}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=accountsByAge">Accounts By Age</a>
-                            </li>
-                            <li class="{if $option==reportGenerator}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=reportGenerator">Report Generator</a>
-                            </li>
-                            <li class="{if $option==noAccounts}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=noAccounts">No Accounts</a>
-                            </li>
-                            <li class="{if $option==allAccounts}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=allAccounts">All Accounts</a>
-                            </li>
-                        </ul>
+                    <li class="{if $thisAction==accounts}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=accounts">Accounts</a>
                     </li>
-                {/if}
-            </ul>
-        </div>
-        <div class="top-bar-right">
-            <ul class="vertical medium-horizontal menu" data-responsive-menu="accordion medium-dropdown">
-                <li class="menu-text">Settings</li>
-                <li class="{if $thisAction==invoiceTypes}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoiceTypes">Invoice Types</a>
-                </li>
-                <li class="{if $thisAction==notifications}is-active{/if}">
-                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=notifications">Notifications</a>
-                </li>
-                {if $glmMemberManager}
-                    <li class="">
-                        <a href="#">Config</a>
-                        <ul class="menu">
-                            <li class="{if $thisAction==settings}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=settings">Settings</a>
-                            </li>
-                            <li class="{if $thisAction==management}is-active{/if}">
-                                <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=management">Management</a>
-                            </li>
-                        </ul>
+                    <li class="{if $thisAction==invoices}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoices">Invoices</a>
+                    </li>
+                    <li class="{if $thisAction==payments}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=payments">Payments</a>
+                    </li>
+                    {if isset( $settings.renewal_day_static ) && $settings.renewal_day_static}
+                        <li class="">
+                            <a href="#">Invoicing</a>
+                            <ul class="menu">
+                                {*
+                                <li>
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing">Invoicing</a>
+                                </li>
+                                *}
+                                <li class="{if !empty($option) && $option==createInvoices}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createInvoices">Create Invoices</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==printInvoices}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=printInvoices">Print Invoices</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==createLabels}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=createLabels">Create Labels</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==sendEmails}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoicing&option=sendEmails">Send Emails</a>
+                                </li>
+                            </ul>
+                        </li>
+                        <li class="{if $thisAction==reports} is-active{/if}">
+                            <a href="#">Reports</a>
+                            <ul class="menu">
+                                <li class="{if !empty($option) && $option==openAccounts}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=openAccounts">Open Accounts</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==closedAccounts}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=closedAccounts">Closed Accounts</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==accountsByAge}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=accountsByAge">Accounts By Age</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==reportGenerator}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=reportGenerator">Report Generator</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==noAccounts}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=noAccounts">No Accounts</a>
+                                </li>
+                                <li class="{if !empty($option) && $option==allAccounts}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=reports&option=allAccounts">All Accounts</a>
+                                </li>
+                            </ul>
+                        </li>
+                    {/if}
+                </ul>
+            </div>
+            <div class="top-bar-right">
+                <ul class="vertical medium-horizontal menu" data-responsive-menu="accordion medium-dropdown">
+                    <li class="menu-text">Settings</li>
+                    <li class="{if $thisAction==invoiceTypes}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoiceTypes">Invoice Types</a>
                     </li>
-                {else}
-                    <li class="{if $thisAction==settings}is-active{/if}">
-                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=settings">Settings</a>
+                    <li class="{if $thisAction==notifications}is-active{/if}">
+                        <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=notifications">Notifications</a>
                     </li>
-                {/if}
-            </ul>
+                    {if $glmMemberManager}
+                        <li class="">
+                            <a href="#">Config</a>
+                            <ul class="menu">
+                                <li class="{if $thisAction==settings}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=settings">Settings</a>
+                                </li>
+                                <li class="{if $thisAction==management}is-active{/if}">
+                                    <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=management">Management</a>
+                                </li>
+                            </ul>
+                        </li>
+                    {else}
+                        <li class="{if $thisAction==settings}is-active{/if}">
+                            <a href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=settings">Settings</a>
+                        </li>
+                    {/if}
+                </ul>
+            </div>
         </div>
     </div>
 
index c4f3ec7..a46793b 100644 (file)
@@ -15,8 +15,9 @@
         <a class="button success" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=payments&option=add">Make Payment</a>
     </div>
 
+    {* Search Form *}
     {include file='admin/billing/accountSearchForm.html'}
-    </form>
+    {include file='ui/f6/form-end.html'}
 
     {foreach $dashboards as $dashboard_title => $list}
         <br clear="all">
index 81c61b6..1468438 100644 (file)
     <a class="button primary" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=invoices&option=add">Create Invoice</a>
     {if $invoiceSent}<p><span class="glm-notice glm-flash-updated">Invoice Sent</span></p>{/if}
 
-    <form action="{$thisUrl}?page={$thisPage}" method="post" id="searchForm">
-        <input type="hidden" name="glm_action" value="invoices">
-        <input type="hidden" name="option" value="list">
-
-        <input type="hidden" name="searched" value="1">
-        <input type="hidden" name="prevStart" value="{$prevStart}">
-        <input type="hidden" name="nextStart" value="{$nextStart}">
-        <input type="hidden" name="limit" value="{$limit}">
-
-        <fieldset class="fieldset cell small-12">
-            <legend>Search Invoices</legend>
-            <div class="grid-container full">
-                <div class="grid-x grid-padding-x">
-                    <div class="cell small-12 medium-3">
-                        <label>From Date: </label>
-                        <input type="text" name="fromDate" value="{$fromDate}" class="glm-form-text-input-short glm-date-input">
-                        <label>To Date: </label>
-                        <input type="text" name="toDate" value="{$toDate}" class="glm-form-text-input-short glm-date-input">
-                    </div>
-                    <div class="cell small-12 medium-3">
-                        <label>Member Account:&nbsp;</label>
-                        <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}">
-                        <input id="account_name" type="text" name="searchName" value="{if $smarty.request.searchName}{$smarty.request.searchName}{/if}" />
-                    </div>
-                    <div class="cell small-12 medium-3">
-                        <label>Invoice #:&nbsp;</label>
-                        <input id="member-invoice-id" type="hidden" name="filterInvoice" value="{$filterInvoices}">
-                        <input id="invoiceId" type="text" name="searchInvoice" value="" />
-                    </div>
-                    <div class="cell small-12 medium-3">
-                        <label>
-                            <input type="checkbox" name="filterUnpaid"{if isset($smarty.request.filterUnpaid) && $smarty.request.filterUnpaid} checked{/if}>
-                            Show only Unpaid Invoices
-                        </label>
-                    </div>
-                    <div class="billing-search-form-submit">
-                        <input type="submit" class="button primary" value="Submit">
-                    </div>
-
+    {* Form Start *}
+    {$ui = [
+        'id'     => 'searchForm',
+        'action' => "{$thisUrl}?page={$thisPage}",
+        'method' => 'post'
+    ]}
+    {include file='ui/f6/form-start.html'}
+
+    <input type="hidden" name="glm_action" value="invoices">
+    <input type="hidden" name="option" value="list">
+
+    <input type="hidden" name="searched" value="1">
+    <input type="hidden" name="prevStart" value="{$prevStart}">
+    <input type="hidden" name="nextStart" value="{$nextStart}">
+    <input type="hidden" name="limit" value="{$limit}">
+
+    <fieldset class="fieldset cell small-12">
+        <legend>Search Invoices</legend>
+        <div class="grid-container full">
+            <div class="grid-x grid-padding-x">
+                <div class="cell small-12 medium-4">
+                    <label>From Date: </label>
+                    <input type="text" name="fromDate" value="{$fromDate}" class="glm-form-text-input-short glm-date-input">
+                    <label>To Date: </label>
+                    <input type="text" name="toDate" value="{$toDate}" class="glm-form-text-input-short glm-date-input">
+                </div>
+                <div class="cell small-12 medium-4">
+                    <label>Member Account:&nbsp;</label>
+                    <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}">
+                    <input id="account_name" type="text" name="searchName" value="{if !empty($smarty.request.searchName)}{$smarty.request.searchName}{/if}" />
+                    <label>Invoice #:&nbsp;</label>
+                    <input id="member-invoice-id" type="hidden" name="filterInvoice" value="{$filterInvoices|default:''}">
+                    <input id="invoiceId" type="text" name="searchInvoice" value="" />
+                </div>
+                <div class="cell small-12 medium-4">
+                    <label>
+                        <input type="checkbox" name="filterUnpaid"{if !empty($smarty.request.filterUnpaid) && $smarty.request.filterUnpaid} checked{/if}>
+                        Show only Unpaid Invoices
+                    </label>
+                </div>
+                <div class="billing-search-form-submit">
+                    <input type="submit" class="button primary" value="Submit">
                 </div>
-            </div>
-        </fieldset>
-
-        <br clear="all">
-
-        <p>Total found: <span class="label">{$totalInvoices}</span></p>
 
-        {if $paging}
-            <input type="Submit" name="pageSelect" value="Previous {$limit} Invoices" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
-            <input type="Submit" name="pageSelect" value="Next {$limit} Invoices" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
-        {/if}
-            <br clear="all">
-
-        <table class="stack glm-admin-table-inner">
-            <thead>
-                <tr>
-                    <th width="80">Invoice #</th>
-                    <th>Member Name</th>
-                    <th>Invoice For</th>
-                    <th width="150">Time</th>
-                    <th width="80">Due Date</th>
-                    <th width="120">Amount Total</th>
-                    <th width="120">Balance</th>
-                </tr>
-            </thead>
-            <tbody>
-                {if $haveInvoices}
-                    {foreach $invoices as $t}
-                        <tr class="glm-invoice-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
-                            <td> {$t.id} </td>
-                            <td> <b>{$t.member_name}</b> </td>
-                            <td>
-                            {foreach $t.line_items as $item}
-                                {$item.name} {if $item.recurring && $item.recurrence_string}( {$item.recurrence_string} ){/if}
-                            {/foreach}
-                            </td>
-                            <td> {$t.transaction_time.datetime} </td>
-                            <td> {$t.due_date.date} </td>
-                            <td> {$t.amount_total} </td>
-                            <td> {$t.balance} </td>
-                        </tr>
-                        <tr id="invoice-container-{$t.id}" class="glm-invoice-links hide-for-large {if $t@iteration is div by 2} alternate{/if}">
-                            <td colspan="7">
-                                <span class="account-dashboard-link">
-                                    <a href="{$adminUrl}?page=glm-members-admin-menu-billing&glm_action=invoices&option=edit&id={$t.id}">Edit</a> |
-                                </span>
-                                <span class="account-dashboard-link">
-                                    {if isset( $settings.invoice_pdf_enabled ) && $settings.invoice_pdf_enabled}
-                                        <a href="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=createPDFInvoice&id={$t.id}" target="_blank">Print</a> |
-                                    {else}
-                                        <a href="{$thisUrl}?page={$thisPage}&glm_action=invoices&option=view&id={$t.id}" target="_blank">View</a> |
-                                    {/if}
-                                </span>
-                                <span class="account-dashboard-link">
-                                    {if $t.paid.value}
-                                        &nbsp;
+            </div>
+        </div>
+    </fieldset>
+
+    <br clear="all">
+
+    <p>Total found: <span class="label">{$totalInvoices}</span></p>
+
+{if $paging}
+    <input type="Submit" name="pageSelect" value="Previous {$limit} Invoices" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
+    <input type="Submit" name="pageSelect" value="Next {$limit} Invoices" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
+{/if}
+    <br clear="all">
+
+    <table class="stack glm-admin-table-inner">
+        <thead>
+            <tr>
+                <th width="80">Invoice #</th>
+                <th>Member Name</th>
+                <th>Invoice For</th>
+                <th width="150">Time</th>
+                <th width="80">Due Date</th>
+                <th width="120">Amount Total</th>
+                <th width="120">Balance</th>
+            </tr>
+        </thead>
+        <tbody>
+            {if $haveInvoices}
+                {foreach $invoices as $t}
+                    <tr class="glm-invoice-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
+                        <td> {$t.id} </td>
+                        <td> <b>{$t.member_name}</b> </td>
+                        <td>
+                        {foreach $t.line_items as $item}
+                            {$item.name} {if $item.recurring && $item.recurrence_string}( {$item.recurrence_string} ){/if}
+                        {/foreach}
+                        </td>
+                        <td> {$t.transaction_time.datetime} </td>
+                        <td> {$t.due_date.date} </td>
+                        <td> {$t.amount_total} </td>
+                        <td> {$t.balance} </td>
+                    </tr>
+                    <tr id="invoice-container-{$t.id}" class="glm-invoice-links hide-for-large {if $t@iteration is div by 2} alternate{/if}">
+                        <td colspan="7">
+                            <span class="account-dashboard-link">
+                                <a href="{$adminUrl}?page=glm-members-admin-menu-billing&glm_action=invoices&option=edit&id={$t.id}">Edit</a> |
+                            </span>
+                            <span class="account-dashboard-link">
+                                {if isset( $settings.invoice_pdf_enabled ) && $settings.invoice_pdf_enabled}
+                                    <a href="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=createPDFInvoice&id={$t.id}" target="_blank">Print</a> |
+                                {else}
+                                    <a href="{$thisUrl}?page={$thisPage}&glm_action=invoices&option=view&id={$t.id}" target="_blank">View</a> |
+                                {/if}
+                            </span>
+                            <span class="account-dashboard-link">
+                                {if $t.paid.value}
+                                    &nbsp;
+                                {else}
+                                    <a class="send-invoice-link" href="#"
+                                        data-id="{$t.id}"
+                                        data-member="{$t.member_id}"
+                                        data-account="{$t.account.value}"
+                                        data-member_name="{$t.member_name}"
+                                        >Send Invoice</a> |
+                                    {if $billing_settings.uptravel_payment_form}
+                                        <a class="make-a-payment" data-member="{$t.member_id}" href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&option=makepaymentadjustment&member={$t.member_id}">Make A Payment</a> |
                                     {else}
-                                        <a class="send-invoice-link" href="#"
-                                            data-id="{$t.id}"
-                                            data-member="{$t.member_id}"
-                                            data-account="{$t.account.value}"
-                                            data-member_name="{$t.member_name}"
-                                            >Send Invoice</a> |
-                                        {if $billing_settings.uptravel_payment_form}
-                                            <a class="make-a-payment" data-member="{$t.member_id}" href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&option=makepaymentadjustment&member={$t.member_id}">Make A Payment</a> |
-                                        {else}
-                                            <a class="pay-invoice" data-member="{$t.member_id}" href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&option=makepayment&member={$t.member_id}">Pay Invoice</a> |
-                                        {/if}
+                                        <a class="pay-invoice" data-member="{$t.member_id}" href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=billing&option=makepayment&member={$t.member_id}">Pay Invoice</a> |
                                     {/if}
-                                </span>
-                                <span class="account-dashboard-link">
-                                    <a onClick="return confirm('This will delete the invoice. This cannot be undone. Are you Sure?');"
-                                        href="{$thisUrl}?page={$thisPage}&glm_action=invoices&option=delete&invoice_id={$t.id}">Delete</a>
-                                </span>
-                            </td>
-                        </tr>
-                    {/foreach}
-                {else}
-                    <tr class="alternate"><td colspan="2">(no Invoices listed)</td></tr>
-                {/if}
-            </tbody>
-        </table>
+                                {/if}
+                            </span>
+                            <span class="account-dashboard-link">
+                                <a onClick="return confirm('This will delete the invoice. This cannot be undone. Are you Sure?');"
+                                    href="{$thisUrl}?page={$thisPage}&glm_action=invoices&option=delete&invoice_id={$t.id}">Delete</a>
+                            </span>
+                        </td>
+                    </tr>
+                {/foreach}
+            {else}
+                <tr class="alternate"><td colspan="2">(no Invoices listed)</td></tr>
+            {/if}
+        </tbody>
+    </table>
 
-        {if $paging}
-            <input type="Submit" name="pageSelect" value="Previous {$limit} Invoices" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
-            <input type="Submit" name="pageSelect" value="Next {$limit} Invoices" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
-        {/if}
+    {if $paging}
+        <input type="Submit" name="pageSelect" value="Previous {$limit} Invoices" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
+        <input type="Submit" name="pageSelect" value="Next {$limit} Invoices" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
+    {/if}
 
-    </form>
+    {* Form End *}
+    {include file='ui/f6/form-end.html'}
 
     <div id="send-invoice-form" title="Send Invoice">
         <form id="invoice-form" action="{$thisUrl}?page={$thisPage}" method="post">
             <span aria-hidden="true">&times;</span>
         </button>
     </div>
-    <script>
-        jQuery(document).ready(function($) {
+</div>
 
-            function startAjax(){
-                $('#glmLoading').show();
-            }
-            function completeAjax(){
-                $('#glmLoading').hide();
-            };
-
-            $('.make-a-payment').on('click', function(e){
-                e.preventDefault();
-                var member = $(this).data('member');
-                var $modalPayment = $('#glmBillingPayment');
-                $.ajax({
-                    url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=ajaxBillingInfo&option=makepaymentadjustment&member=' + member,
-                    cache: false,
-                    beforeSend: startAjax,
-                    complete: completeAjax,
-                }).done(function(resp){
-                    $modalPayment.html(resp).foundation('open').trigger('resizeme.zp.reveal');
-                });
-                return false;
+<script>
+    jQuery(document).ready(function($) {
+
+        function startAjax(){
+            $('#glmLoading').show();
+        }
+        function completeAjax(){
+            $('#glmLoading').hide();
+        };
+
+        $('.make-a-payment').on('click', function(e){
+            e.preventDefault();
+            var member = $(this).data('member');
+            var $modalPayment = $('#glmBillingPayment');
+            $.ajax({
+                url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=ajaxBillingInfo&option=makepaymentadjustment&member=' + member,
+                cache: false,
+                beforeSend: startAjax,
+                complete: completeAjax,
+            }).done(function(resp){
+                $modalPayment.html(resp).foundation('open').trigger('resizeme.zp.reveal');
             });
+            return false;
+        });
 
-            function sendInvoice() {
-                var valid = true;
+        function sendInvoice() {
+            var valid = true;
 
-                if ( valid ) {
-                    $('#invoice-form').submit();
-                }
+            if ( valid ) {
+                $('#invoice-form').submit();
+            }
 
-                return valid;
+            return valid;
+        }
+
+        dialog = $('#send-invoice-form').dialog({
+            autoOpen: false,
+            height: 200,
+            width: 350,
+            modal: true,
+            buttons: {
+                "Send Invoice": sendInvoice,
+                Cancel: function () {
+                    dialog.dialog( 'close' );
+                }
+            },
+            close: function() {
+                // $('#send-invoice-form').reset();
             }
+        });
 
-            dialog = $('#send-invoice-form').dialog({
-                autoOpen: false,
-                height: 200,
-                width: 350,
-                modal: true,
-                buttons: {
-                    "Send Invoice": sendInvoice,
-                    Cancel: function () {
-                        dialog.dialog( 'close' );
-                    }
+        $('.send-invoice-link').on('click', function(e){
+            e.preventDefault();
+
+            var invoice_id  = $(this).data( 'id' );
+            var member_id   = $(this).data( 'member' );
+            var account_id  = $(this).data( 'account' );
+            var member_name = $(this).data( 'member_name' );
+
+            $('#invoice_id').val( invoice_id );
+            $('#member_id').val( member_id );
+            $('#account_id').val( account_id );
+            $('#member_name').html( '<b>' + member_name + '</b>' );
+
+            // Call ajax invoice api to see if this member has email_invoice set
+            $.ajax({
+                url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=invoices&option=invoice_methods',
+                cache: false,
+                type: 'POST',
+                data: {
+                    member_id: member_id,
+                    account_id: account_id,
+                    invoice_id: invoice_id
                 },
-                close: function() {
-                    // $('#send-invoice-form').reset();
+                encode: true,
+                dataType: 'json'
+            }).done(function(msg){
+                if ( msg === '0' ) {
+                    $('#email_invoice').html( '<b style="color: red;">Off</b>' );
+                } else {
+                    $('#email_invoice').html( '<b style="color: green;">On</b>' );
                 }
             });
 
-            $('.send-invoice-link').on('click', function(e){
-                e.preventDefault();
-
-                var invoice_id  = $(this).data( 'id' );
-                var member_id   = $(this).data( 'member' );
-                var account_id  = $(this).data( 'account' );
-                var member_name = $(this).data( 'member_name' );
-
-                $('#invoice_id').val( invoice_id );
-                $('#member_id').val( member_id );
-                $('#account_id').val( account_id );
-                $('#member_name').html( '<b>' + member_name + '</b>' );
-
-                // Call ajax invoice api to see if this member has email_invoice set
-                $.ajax({
-                    url: '{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=invoices&option=invoice_methods',
-                    cache: false,
-                    type: 'POST',
-                    data: {
-                        member_id: member_id,
-                        account_id: account_id,
-                        invoice_id: invoice_id
-                    },
-                    encode: true,
-                    dataType: 'json'
-                }).done(function(msg){
-                    if ( msg === '0' ) {
-                        $('#email_invoice').html( '<b style="color: red;">Off</b>' );
-                    } else {
-                        $('#email_invoice').html( '<b style="color: green;">On</b>' );
-                    }
-                });
-
-
-                dialog.dialog( 'open' );
-            });
 
-            var invoiceHoverId  = false;
+            dialog.dialog( 'open' );
+        });
 
-            $('.glm-invoice-row').mouseenter( function(){
-                // Hide all
-                $( '.glm-invoice-links' ).addClass( 'hide-for-large' );
+        var invoiceHoverId  = false;
 
-                invoiceHoverId = $(this).data('id');
-                $( '#invoice-container-' + invoiceHoverId ).removeClass( 'hide-for-large' );
-            });
-            $('.glm-admin-table-inner').mouseleave( function() {
-                $( '#invoice-container-' + invoiceHoverId ).addClass( 'hide-for-large' );
-            });
+        $('.glm-invoice-row').mouseenter( function(){
+            // Hide all
+            $( '.glm-invoice-links' ).addClass( 'hide-for-large' );
 
-            // Date Input
-            $('.glm-date-input').datepicker({
-                dateFormat: 'mm/dd/yy'
-            });
+            invoiceHoverId = $(this).data('id');
+            $( '#invoice-container-' + invoiceHoverId ).removeClass( 'hide-for-large' );
+        });
+        $('.glm-admin-table-inner').mouseleave( function() {
+            $( '#invoice-container-' + invoiceHoverId ).addClass( 'hide-for-large' );
+        });
 
-            var availableAccounts = [
-            {foreach $accounts as $m}
-                { label: "{$m.ref_name|unescape:'html'|replace:'"':''}", value: "{$m.ref_name|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
-            {/foreach}
-            ]
+        // Date Input
+        $('.glm-date-input').datepicker({
+            dateFormat: 'mm/dd/yy'
+        });
 
-            {* accounts for the search *}
-            $('#account_name').autocomplete({
-                source: availableAccounts,
-                select: function( event, ui ){
-                    $('#member-account').val( ui.item.id );
+        var availableAccounts = [
+        {foreach $accounts as $m}
+            { label: "{$m.ref_name|unescape:'html'|replace:'"':''}", value: "{$m.ref_name|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
+        {/foreach}
+        ]
+
+        {* accounts for the search *}
+        $('#account_name').autocomplete({
+            source: availableAccounts,
+            select: function( event, ui ){
+                $('#member-account').val( ui.item.id );
+                $('#searchForm').submit();
+            },
+            change: function( event, ui) {
+                if( ui.item == null ) {
+                    $('#member-account').val( '' );
                     $('#searchForm').submit();
-                },
-                change: function( event, ui) {
-                    if( ui.item == null ) {
-                        $('#member-account').val( '' );
-                        $('#searchForm').submit();
-                    }
-                },
-            });
+                }
+            },
+        });
 
-            {* Invoices for the search *}
-            var availableInvoices = [
-            {foreach $invoiceList as $m}
-                { label: "{$m.id} ( {$m.member_name|unescape:'html'|replace:'"':''} )", value: "{$m.id|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
-            {/foreach}
-            ]
-            $('#invoiceId').autocomplete({
-                source: availableInvoices,
-                select: function( event, ui ){
-                    $('#member-invoice-id').val( ui.item.id );
-                    $('#invoiceId').val( ui.item.id );
-                    // console.log( 'selected invoice id: ', ui.item.id );
+        {* Invoices for the search *}
+        var availableInvoices = [
+        {foreach $invoiceList as $m}
+            { label: "{$m.id} ( {$m.member_name|unescape:'html'|replace:'"':''} )", value: "{$m.id|unescape:'html'|replace:'"':''}", id: '{$m.id}' },
+        {/foreach}
+        ]
+        $('#invoiceId').autocomplete({
+            source: availableInvoices,
+            select: function( event, ui ){
+                $('#member-invoice-id').val( ui.item.id );
+                $('#invoiceId').val( ui.item.id );
+                // console.log( 'selected invoice id: ', ui.item.id );
+                $('#searchForm').submit();
+            },
+            change: function( event, ui) {
+                if( ui.item == null ) {
+                    $('#member-invoice-id').val( '' );
+                    // console.log( 'selected invoice id: ', ui );
                     $('#searchForm').submit();
-                },
-                change: function( event, ui) {
-                    if( ui.item == null ) {
-                        $('#member-invoice-id').val( '' );
-                        // console.log( 'selected invoice id: ', ui );
-                        $('#searchForm').submit();
-                    }
-                },
-            });
-            {if $filterAccounts}
-                {$selected = 0}
-                {foreach $accounts as $m}
-                    {if $m.id == $filterAccounts}
-                        {$selected = $m.ref_name|unescape:'html'|replace:'"':''}
-                    {/if}
-                {/foreach}
-                $('#account_name').autocomplete().val('{$selected}');
-            {/if}
+                }
+            },
+        });
+        {if $filterAccounts}
+            {$selected = 0}
+            {foreach $accounts as $m}
+                {if $m.id == $filterAccounts}
+                    {$selected = $m.ref_name|unescape:'html'|replace:'"':''}
+                {/if}
+            {/foreach}
+            $('#account_name').autocomplete().val('{$selected}');
+        {/if}
 
-            // Flash certain elements for a short time after display
-            $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
+        // Flash certain elements for a short time after display
+        $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
 
-        });
-    </script>
+    });
+</script>
 
-</div>
 {include file='admin/billing/footer.html'}
index f993106..1d2af89 100644 (file)
 
     </fieldset>
 
-    <fieldset class="cell small-12 medium-6 square">
+    <fieldset class="fieldset cell small-12 medium-6 square">
         <legend>Square</legend>
 
         {* Use Production Mode *}
@@ -405,6 +405,35 @@ jQuery(function($){
         showSelectedCardProcessor();
     });
 
+    /*
+     * Check for input changes
+     */
+    var glmSubmitRequired = false;
+    $('input, textarea, select').on( 'change', function() {
+        glmPageUpdateRequired();
+    });
+
+    /*
+     * Checks for leaving the page
+     */
+
+    // Flag submit button when updates are required.
+    function glmPageUpdateRequired() {
+        glmSubmitRequired = true;
+    }
+    // When submit button is clicked, disable the beforeunload message
+    $('#glm-billing-management-form').on('click', function() {
+        glmSubmitRequired = false;
+        return true;
+    });
+
+    // If submit is required and we're laving the page, alert the user
+    $(window).bind('beforeunload', function() {
+        if (glmSubmitRequired) {
+            return true;
+        }
+    });
+
 });
 </script>
 
index b08d529..148f698 100644 (file)
@@ -9,87 +9,95 @@
         <a class="button primary" href="{$thisUrl}?page=glm-members-admin-menu-billing&glm_action=payments&option=add">Make Payment</a>
     </div>
 
-    <form action="{$thisUrl}?page={$thisPage}" method="post" id="searchForm">
-        <input type="hidden" name="glm_action" value="payments">
-        <input type="hidden" name="option" value="list">
-
-        <input type="hidden" name="searched" value="1">
-        <input type="hidden" name="prevStart" value="{$prevStart}">
-        <input type="hidden" name="nextStart" value="{$nextStart}">
-        <input type="hidden" name="limit" value="{$limit}">
-
-        <fieldset class="fieldset cell small-12">
-            <legend>Search Payments</legend>
-            <div class="grid-container full">
-                <div class="grid-x grid-padding-x">
-                    <div class="cell small-12 medium-3">
-                        <b>From Date: </b><input type="text" name="fromDate" value="{$fromDate}" class="glm-form-text-input-short glm-date-input">
-                    </div>
-                    <div class="cell small-12 medium-3">
-                        <b>To Date: </b><input type="text" name="toDate" value="{$toDate}" class="glm-form-text-input-short glm-date-input">
-                    </div>
-                    <div class="cell small-12 medium-3">
-                        <b>Member Account:&nbsp;</b>
-                        <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}">
-                        <input id="account_name" type="text" name="searchName" value="{if $searchName}{$searchName}{/if}" />
-                    </div>
-                    <div class="cell small-12">
-                        <input class="button primary" type="submit" value="Submit">
-                    </div>
+    {* Form Start *}
+    {$ui = [
+        'id'     => 'searchForm',
+        'action' => "{$thisUrl}?page={$thisPage}",
+        'method' => 'post'
+    ]}
+    {include file='ui/f6/form-start.html'}
+
+    <input type="hidden" name="glm_action" value="payments">
+    <input type="hidden" name="option" value="list">
+
+    <input type="hidden" name="searched" value="1">
+    <input type="hidden" name="prevStart" value="{$prevStart}">
+    <input type="hidden" name="nextStart" value="{$nextStart}">
+    <input type="hidden" name="limit" value="{$limit}">
+
+    <fieldset class="fieldset cell small-12">
+        <legend>Search Payments</legend>
+        <div class="grid-container full">
+            <div class="grid-x grid-padding-x">
+                <div class="cell small-12 medium-3">
+                    <b>From Date: </b><input type="text" name="fromDate" value="{$fromDate}" class="glm-form-text-input-short glm-date-input">
+                </div>
+                <div class="cell small-12 medium-3">
+                    <b>To Date: </b><input type="text" name="toDate" value="{$toDate}" class="glm-form-text-input-short glm-date-input">
+                </div>
+                <div class="cell small-12 medium-3">
+                    <b>Member Account:&nbsp;</b>
+                    <input id="member-account" type="hidden" name="filterAccounts" value="{$filterAccounts}">
+                    <input id="account_name" type="text" name="searchName" value="{if $searchName}{$searchName}{/if}" />
+                </div>
+                <div class="cell small-12">
+                    <input class="button primary" type="submit" value="Submit">
                 </div>
             </div>
-        </fieldset>
+        </div>
+    </fieldset>
+
+    <br clear="all">
 
+    <p>Total found: <span class="label">{$numbDisplayed}</span></p>
+    {if $paging}
+        <input type="Submit" name="pageSelect" value="Previous {$limit} Accounts" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
+        <input type="Submit" name="pageSelect" value="Next {$limit} Accounts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
+    {/if}
         <br clear="all">
 
-        <p>Total found: <span class="label">{$numbDisplayed}</span></p>
-        {if $paging}
-            <input type="Submit" name="pageSelect" value="Previous {$limit} Accounts" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
-            <input type="Submit" name="pageSelect" value="Next {$limit} Accounts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
-        {/if}
-            <br clear="all">
-
-        <table class="stack glm-admin-table-inner">
-            <thead>
-                <tr>
-                    <th>Member Name</th>
-                    <th>Time</th>
-                    <th>Amount</th>
-                    <th>Payment Method</td>
-                    <th>Payment Notes</th>
-                </tr>
-            </thead>
-            <tbody>
-                {if $havePayments}
-                    {assign var="i" value="0"}
-                    {foreach $payments as $t}
-                        <tr class="glm-payment-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
-                            <td> <b>{$t.member_name}</b> </td>
-                            <td> {$t.transaction_time.datetime} </td>
-                            <td> {$t.amount|string_format:"%.2f"} </td>
-                            <td> {$t.payment_method} </td>
-                            <td> {$t.payment_data} </td>
-                        </tr>
-                        <tr id="payment-container-{$t.id}" class="glm-payment-links glm-hidden{if $t@iteration is div by 2} alternate{/if}">
-                            <td colspan="5">
-                                <span class="account-dashboard-link">
-                                    <a onClick="return confirm('This will delete the payment. This cannot be undone. Are you Sure?');" href="{$thisUrl}?page={$thisPage}&glm_action=payments&option=delete&payment_id={$t.id}">Delete</a>
-                                </span>
-                            </td>
-                        </tr>
-                    {/foreach}
-                {else}
-                    <tr class="alternate"><td colspan="2">(no Payments listed)</td></tr>
-                {/if}
-            </tbody>
-        </table>
+    <table class="stack glm-admin-table-inner">
+        <thead>
+            <tr>
+                <th>Member Name</th>
+                <th>Time</th>
+                <th>Amount</th>
+                <th>Payment Method</td>
+                <th>Payment Notes</th>
+            </tr>
+        </thead>
+        <tbody>
+            {if $havePayments}
+                {assign var="i" value="0"}
+                {foreach $payments as $t}
+                    <tr class="glm-payment-row{if $t@iteration is div by 2} alternate{/if}" data-id="{$t.id}">
+                        <td> <b>{$t.member_name}</b> </td>
+                        <td> {$t.transaction_time.datetime} </td>
+                        <td> {$t.amount|string_format:"%.2f"} </td>
+                        <td> {$t.payment_method} </td>
+                        <td> {$t.payment_data} </td>
+                    </tr>
+                    <tr id="payment-container-{$t.id}" class="glm-payment-links glm-hidden{if $t@iteration is div by 2} alternate{/if}">
+                        <td colspan="5">
+                            <span class="account-dashboard-link">
+                                <a onClick="return confirm('This will delete the payment. This cannot be undone. Are you Sure?');" href="{$thisUrl}?page={$thisPage}&glm_action=payments&option=delete&payment_id={$t.id}">Delete</a>
+                            </span>
+                        </td>
+                    </tr>
+                {/foreach}
+            {else}
+                <tr class="alternate"><td colspan="2">(no Payments listed)</td></tr>
+            {/if}
+        </tbody>
+    </table>
 
     {if $paging}
         <input type="Submit" name="pageSelect" value="Previous {$limit} Accounts" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
         <input type="Submit" name="pageSelect" value="Next {$limit} Accounts" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
     {/if}
 
-    </form>
+    {* Form End *}
+    {include file='ui/f6/form-end.html'}
 
     <script type="text/javascript">
         jQuery(document).ready(function($) {
index bf4fd33..b07f9cc 100644 (file)
         // Setup the Responsive Accordion Tabs
         var settings = new Foundation.ResponsiveAccordionTabs( $('#glm-settings-tabs') );
 
+        /*
+         * Check for input changes
+         */
+        var glmSubmitRequired = false;
+        $('input, textarea, select').on( 'change', function() {
+            glmPageUpdateRequired();
+        });
+
+        /*
+         * Checks for leaving the page
+         */
+
+        // Flag submit button when updates are required.
+        function glmPageUpdateRequired() {
+            //$('#billing-setting-form').addClass('glm-bad-input-area');
+            glmSubmitRequired = true;
+        }
+        // When submit button is clicked, disable the beforeunload message
+        $('#billing-setting-form').on('click', function() {
+            glmSubmitRequired = false;
+            return true;
+        });
+
+        // If submit is required and we're laving the page, alert the user
+        $(window).bind('beforeunload', function() {
+            if (glmSubmitRequired) {
+                return true;
+            }
+        });
+
     });
 </script>
 {include file='admin/billing/footer.html'}