123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- /**
- * @file
- * Handles asynchronous requests for order editing forms.
- */
- var customer_select = '';
- /**
- * Adds double click behavior to the order and customer admin tables.
- */
- Drupal.behaviors.ucOrderClick = {
- attach: function(context, settings) {
- jQuery('.view-uc-orders tbody tr, .view-uc-customers tbody tr', context).dblclick(
- function() {
- window.location = jQuery(this).find('.views-field-order-id a').attr('href');
- }
- );
- }
- }
- /**
- * Adds the submit behavior to the order form
- */
- Drupal.behaviors.ucOrderSubmit = {
- attach: function(context, settings) {
- jQuery('#uc-order-edit-form:not(.ucOrderSubmit-processed)', context).addClass('ucOrderSubmit-processed').submit(
- function() {
- jQuery('#products-selector').empty().removeClass();
- jQuery('#delivery_address_select').empty().removeClass();
- jQuery('#billing_address_select').empty().removeClass();
- jQuery('#customer-select').empty().removeClass();
- }
- );
- }
- }
- /**
- * Copies the shipping data on the order edit screen to the corresponding
- * billing fields if they exist.
- */
- function uc_order_copy_shipping_to_billing() {
- if (jQuery('#edit-delivery-zone').html() != jQuery('#edit-billing-zone').html()) {
- jQuery('#edit-billing-zone').empty().append(jQuery('#edit-delivery-zone').children().clone());
- }
- jQuery('#uc-order-edit-form input, select, textarea').each(
- function() {
- if (this.id.substring(0, 13) == 'edit-delivery') {
- jQuery('#edit-billing' + this.id.substring(13)).val(jQuery(this).val());
- }
- }
- );
- }
- /**
- * Copies the billing data on the order edit screen to the corresponding
- * shipping fields if they exist.
- */
- function uc_order_copy_billing_to_shipping() {
- if (jQuery('#edit-billing-zone').html() != jQuery('#edit-delivery-zone').html()) {
- jQuery('#edit-delivery-zone').empty().append(jQuery('#edit-billing-zone').children().clone());
- }
- jQuery('#uc-order-edit-form input, select, textarea').each(
- function() {
- if (this.id.substring(0, 12) == 'edit-billing') {
- jQuery('#edit-delivery' + this.id.substring(12)).val(jQuery(this).val());
- }
- }
- );
- }
- /**
- * Loads the address book div on the order edit screen.
- */
- function load_address_select(uid, div, address_type) {
- var options = {
- 'uid' : uid,
- 'type' : address_type,
- 'func' : "apply_address('" + address_type + "', this.value);"
- };
- jQuery.post(Drupal.settings.ucURL.adminOrders + 'address_book', options,
- function (contents) {
- jQuery(div).empty().addClass('address-select-box').append(contents);
- }
- );
- }
- /**
- * Applys the selected address to the appropriate fields in the order edit form.
- */
- function apply_address(type, address_str) {
- eval('var address = ' + address_str + ';');
- jQuery('#edit-' + type + '-first-name').val(address['first_name']);
- jQuery('#edit-' + type + '-last-name').val(address['last_name']);
- jQuery('#edit-' + type + '-phone').val(address['phone']);
- jQuery('#edit-' + type + '-company').val(address['company']);
- jQuery('#edit-' + type + '-street1').val(address['street1']);
- jQuery('#edit-' + type + '-street2').val(address['street2']);
- jQuery('#edit-' + type + '-city').val(address['city']);
- jQuery('#edit-' + type + '-postal-code').val(address['postal_code']);
- if (jQuery('#edit-' + type + '-country').val() != address['country']) {
- jQuery('#edit-' + type + '-country').val(address['country']);
- }
- jQuery('#edit-' + type + '-zone').val(address['zone']);
- }
- /**
- * Closes the address book div.
- */
- function close_address_select(div) {
- jQuery(div).empty().removeClass('address-select-box');
- return false;
- }
- /**
- * Loads the customer select div on the order edit screen.
- */
- function load_customer_search() {
- if (customer_select == 'search' && jQuery('#customer-select #edit-back').val() == null) {
- return close_customer_select();
- }
- jQuery.post(Drupal.settings.ucURL.adminOrders + 'customer', {},
- function (contents) {
- jQuery('#customer-select').empty().addClass('customer-select-box').append(contents);
- jQuery('#customer-select #edit-first-name').val(jQuery('#edit-billing-first-name').val());
- jQuery('#customer-select #edit-last-name').val(jQuery('#edit-billing-last-name').val());
- customer_select = 'search';
- }
- );
- return false;
- }
- /**
- * Displays the results of the customer search.
- */
- function load_customer_search_results() {
- jQuery.post(Drupal.settings.ucURL.adminOrders + 'customer/search',
- {
- first_name: jQuery('#customer-select #edit-first-name').val(),
- last_name: jQuery('#customer-select #edit-last-name').val(),
- email: jQuery('#customer-select #edit-email').val()
- },
- function (contents) {
- jQuery('#customer-select').empty().append(contents);
- }
- );
- return false;
- }
- /**
- * Sets customer values from search selection.
- */
- function select_customer_search() {
- var data = jQuery('#edit-cust-select').val();
- var i = data.indexOf(':');
- return select_existing_customer(data.substr(0, i), data.substr(i + 1));
- }
- /**
- * Displays the new customer form.
- */
- function load_new_customer_form() {
- if (customer_select == 'new') {
- return close_customer_select();
- }
- jQuery.post(Drupal.settings.ucURL.adminOrders + 'customer/new', {},
- function (contents) {
- jQuery('#customer-select').empty().addClass('customer-select-box').append(contents);
- customer_select = 'new';
- }
- );
- return false;
- }
- /**
- * Validates the customer's email address.
- */
- function check_new_customer_address() {
- var options = {
- 'email' : jQuery('#customer-select #edit-email').val(),
- 'sendmail' : jQuery('#customer-select #edit-sendmail').attr('checked')
- };
- jQuery.post(Drupal.settings.ucURL.adminOrders + 'customer/new/check', options,
- function (contents) {
- jQuery('#customer-select').empty().append(contents);
- }
- );
- return false;
- }
- /**
- * Loads existing customer as new order's customer.
- */
- function select_existing_customer(uid, email) {
- jQuery('input[name=uid], #edit-uid-text').val(uid);
- jQuery('input[name=primary_email], #edit-primary-email-text').val(email);
- try {
- jQuery('#edit-submit-changes').click();
- }
- catch (err) {
- }
- return close_customer_select();
- }
- /**
- * Hides the customer selection form.
- */
- function close_customer_select() {
- jQuery('#customer-select').empty().removeClass('customer-select-box');
- customer_select = '';
- return false;
- }
|